引用:
|
作者: ajoo 对呀对呀,静态代码分析才是王道。
让程序员在代码中手工加入delete是丑陋的,因为“什么时候这个对象不需要了”这个信息是代码本身就已经提供了,手工delete是冗余,增加了麻烦和出错机会。 |
王道的说,能优化的优化掉,剩下的交给GC. 这样的代码可能比手写的还好。
引用:
|
作者: sjinny 汗一个……我一直认为,程序员永远比编译器更了解自己的程序……如果静态分析会从根本上剥夺程序员的控制权,那我觉得这样就不好了。把程序员从底层解放出来,从更高层进行控制,这我还是能接受的。 |
编译器产生的汇编还是很强劲的,会有不少妙手。如果不是对汇编极其了解(比如housisong)很难写得出,或者作进一步优化。不是每个程序员都有精力到那个程度的。你能确定内存不是这样吗?
引用:
|
作者: sjinny 延后释放,其实是把释放的压力集中在了某一次申请之前,我觉得这样不好。 |
各种不同资源性质不一样的。对于DB connection如果每次用好都释放掉会很慢的。所以要connection pool.
内存也一样,太积极太确定的话,你的一个delete导致C++ Runtime发现一个page没人用了然后直接还给OS下次再申请恐怕效率也高不了。
所以说极端完美的确定恐怕并不能达到你想要的效果。