d澄清垃集

控制流分析,会使编译速度慢10倍.
关于D的GC.
除非用GC分配,D的GC永远不会运行的.只要不用它,不需要@nogc来禁止GC.性能关键代码(写得好代码)都不会在关键区分配,所以GC对它没影响.
如果它能错误的有用工具,是否可放其在编译器开关后面.在发布前额外检查就足够了
默认初化不能解决所有初化问题,它只是使它们可重现.使它们可重现是一件大事.
当然,我同意这一点.只是静态消除它们更有意义
未初化变量,很难找错.
我曾经在运行优化器时有它,但人们不喜欢有时有错误,有时没错误.
我不希望这那么昂贵.它比现在在语言中的逃逸分析更简单,并且大致与跟踪构造器/析构器相当.
做过了.它很贵.它与依赖无数据流的分析的构造/析构器不一样.
D的借用检查器确实跑速度很慢的DFA,这也是它仅在@live注解下活动的原因之一.Rust使用DFA,速度慢出了名的.
D总是初化变量,然后(可选的)优化趟,删除了不需要的变量.这是合理方法.

:在开发过程中,C++编译器通过UBSAN捕获许多整数溢出错误,永远不会到达最终用户.
虽然,对编译器,这是不错选项,但只有有触发溢出测试用例时,才会到达最终用户.

posted @ 2022-12-09 11:22  zjh6  阅读(17)  评论(0)    收藏  举报  来源