【发布时间】:2020-02-10 19:45:13
【问题描述】:
我处于从函数返回值是可选的情况。所以无论我返回还是不返回在逻辑上都没有区别,但我可以安全地假设同样的事情吗?
我的意思是当我们使用返回一些值的函数(例如:Int)而不是返回 void 的函数时,是否存在任何性能开销(时间或内存)?
这是一个虚拟项目,出于好奇而提出这个问题。
【问题讨论】:
-
可能会有细微差别(虽然我不确定)但它可能可以忽略不计,并且为此烦恼可能不值得 - 除非你在您真的需要这种级别的微优化的情况,但在这种情况下,无论如何您都必须更深入地研究字节码、硬件等。
-
“我返回或不返回在逻辑上没有区别”......你的设计很奇怪
-
永远不要问这样的问题。不同系统上的结果可能不同。如果您想知道:测量它(可能与目标系统的相同环境)。如果您无法衡量差异,则意味着这无关紧要。另见softwareengineering.stackexchange.com/questions/80084/…
-
如果您检查每种情况下生成的汇编程序(C)/字节(Java)代码,它可能会告诉您您想知道的内容。
-
我们不能笼统地回答这个问题,你需要有一个特定的系统。答案取决于 ABI 的调用约定,以及编译器是否可以内联函数调用。虽然一般来说:额外的功能需要额外的性能。
标签: c performance processing-efficiency memory-efficient