gpt4 book ai didi

c - 注释是否消耗内存和/或使用周期?

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:12 25 4
gpt4 key购买 nike

我正在使用 bash 脚本、node.js 和 C 的组合为 ARM 系统开发多个应用程序。我在开发时使用注释来跟踪代码中发生的事情或停用实际代码。

我的经验是,每个额外的内存指针和处理器周期都会减慢系统速度。

我应该为了优化而删除生产代码中的所有注释还是不值得担心?

最佳答案

正如其他答案所提到的, 没有区别。 (或任何其他编译的)代码。

这可以证明如下:

$ touch 0comments.c
$ time gcc -c -o 0comments.o 0comments.c

real 0m0.022s
user 0m0.009s
sys 0m0.009s
$ seq -f '/* This is comment %g */' 1000000 > 1000000comments.c
$ time gcc -c -o 1000000comments.o 1000000comments.c

real 0m0.163s
user 0m0.135s
sys 0m0.021s
$ cmp 0comments.o 1000000comments.o
$

生成了两个 .c 文件——一个是空的,另一个有 1000000 条评论,然后编译。比较生成的对象,没有显示出差异。

请注意编译时间确实增加了,尽管每条评论增加的时间非常微不足道,所以除非在最极端的情况下,否则应该不是问题。


,我无法衡量循环中评论的任何显着差异:

$ time for i in {0..1000000}; do
> :
> done

real 0m4.054s
user 0m4.006s
sys 0m0.049s
$ time for i in {0..1000000}; do
> :
> # This is a comment
> done

real 0m4.047s
user 0m3.999s
sys 0m0.048s
$

...尽管可能有更严格的测试用例。

每当必须解析任何类型的循环,它需要在执行循环之前解析整个循环(因此它知道在哪里重定向输出等)。我怀疑注释在此解析过程中被删除,因此它们不会在每次循环迭代中都被重新解析。

但是,如果注释不在任何类型的循环(或可能函数)中,则解析时间很短,但可以测量:

$ seq -f "# This is comment %g" 1000000 > 1000000comments
$ chmod +x 1000000comments
$ time ./1000000comments

real 0m1.675s
user 0m1.468s
sys 0m0.207s
$ touch 0comments
$ chmod +x 0comments
$ time ./0comments

real 0m0.001s
user 0m0.000s
sys 0m0.001s
$

不知道 ,尽管与任何解释性语言相似,但除了在最极端的情况下,它可能几乎没有或没有区别。


底线是 - 请不要删除您的评论 - 它们存在是有充分理由的。如果你删除它们,你代码的 future 维护者(可能包括你)将永远诅咒你的名字。 ;-)

关于c - 注释是否消耗内存和/或使用周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21121787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com