回复: 请教各位大大关于动态内存管理的问题…… 引用ajoo:
静态分析当然不可能分析出所有的东西了,但是如果在一些语言规则的帮助下,前景还是有的吧?
比如现在就有技术可以分析一个局部变量时不时漏到scope外面了,如果没有,放到栈上就没问题呀。这个只是对内存说的,不关io什么事吧?而且也不仅仅局限于类型系统。
是的。我的那段话并不是要否定静态分析,只是想跟sjinny描述一下人的局限性,人(程序员)写程序的时候只能静态确定,所以并不能很清楚的知道某些行为是不是最优的。
引用自sjinny:
说道优化,有个题外话:我一直到最近才明白,程序的优化,首先是针对人的资源的优化,其次才是针对机器的优化。
如果你明白这个,再想想“软件开发的任务就是管理复杂度”,你就知道你反对GC是不对的了。正如cat所说:
隐藏细节恰恰帮助程序员更好地把握程序。GC就把和内存相关一些细节隐藏在了你背后。如果这些细节恰巧对你来说不重要,那么GC就大大帮助你集中注意搞设计。就像高级语言把寄存器布局,CPU流水等等都藏了起来。CPU也没告诉你你的指令可能会被乱序执行(可能有些编译优化器知道,并且会有针对地作优化)。 |