关于使用一种或多种语言构建的应用程序的运行时性能,有许多比较研究并可以在线获得。有些是由公司推动的,有些是学术的,有些只是个人的实验报告。
在编程语言及其工具的副作用方面,我们也得到了相当多的比较研究,例如:
- 建立时间
- 后期发现错误的可能性,
- 表达能力,
- 等等...
但是,最近,我对程序的内存消耗感到越来越沮丧,这比其他任何事情都重要。这可能来自以下事实:尽管摩尔定律在我们的工作上表现出色,但我们已经意识到其他瓶颈更为重要。这样,而且我不会经常这样更新硬件,而且我有一些“旧的”(阅读2005-2006 3.6GHz Pentium 4,具有4GB的内存),如今很难被其用于大型应用程序而无需要求我费很大的劲才能从中榨汁(例如,操作系统,UI,服务和守护程序的调整,选择用于任务或其他用途的应用程序...)。老实说,有时我看到最无辜的程序使用的内存时会发火top
或procexp
哭泣。
我可以通过坚持上述方向来解决这个问题,并且本质上是要限制自己和我使用的程序(出于这个原因,我对cli程序非常热爱,我想),但是我也不得不思考也许我们做错了。
满足现代需求的现代工具
当然,高级语言可以说是更好的选择,并证明它们值得承担沉重的负担。当时,出于很多原因(或合理预期),在许多工具链中做出了一些设计选择。共享的库,内存模型,预处理器,类型系统等。但是使用我们的现代硬件,某些库可能比另一些库更可行,我很想阅读一些对此事的认真研究。
How much memory consumption makes you weep?
对于不带扩展名的无效Chrome标签页,为30MB;对于ATI的CCC,为100MB;对于无效的googletalk插件,甚至为11MB;对于无效的打印机驱动程序,为23MB。这些东西,还有更多。chrome的示例有点复杂,因为它是一个更复杂的示例,但是其他示例已经使我大为惊讶。