当前位置: 华文问答 > 数码

程序中提升几毫秒、节省几 kB 的内存有必要吗?

2022-01-07数码

Profiler扛旗人不在知乎了…

这种问题,从来都不是这么缺信息问的。

就好比你问我,一个零件便宜一分钱,值吗?

那得看零件是啥。

一台火箭发动机省一分钱,谢谢,下次不用了,您该忙啥忙啥去吧。

一个螺丝省一分钱,大哥,慢慢搞别急,省不出一分给我省半分也行。

程序里也是。一个总共运行一次的函数,省了几毫秒;一个全世界可能只需要一份拷贝的数据,省了几kb。那当然是没必要。

但如果是比如内核里的每秒调用几万次的函数,别说省一毫秒了,省一个时钟周期都值得考虑一下。或者大量拷贝的数据结构,比如线程场景,那省一个字节也值得考虑一下。

判断你的程序的调用模式的工作叫Profiling(具体含义翻译成中文挺难说清楚的,贴个英英字典链接:Definition of PROFILE)。当然实际要考虑的也并不总是总共省多少时间之类的事情,还有比如关键路径上的考量等等。但总之,

先Profile,再优化。