内存和处理能力是否随着时间的推移而增加,基本上是以相同的速度增长,还是说其中一种或另一种增加得更多?成本是否以同样的速度下降?那么不久的将来呢?
我知道这个问题与编程没有直接关系,但我认为,出于一些原因,最好在此提出:
关于第三项:目前,我们已经看到了很多关于使用函数式编程技术的增加如何与现在常见的多核机器有关的争论,以及免费午餐是如何结束的[pdf格式]。
但在我看来,功能范式的内存消耗要大得多(但这是一种观点,而不是事实),我似乎对未来记忆需求的增长没有太多的争论。
发布于 2011-01-19 20:44:37
重要的是要注意摩尔定律并没有提到处理器的速度。它谈到晶体管密度。
事实上,我们很久以前就在时钟速率上碰壁了,从P4开始,时钟就一直在下降。OOO执行和其他利用ILP的机制带来了更多的性能提升,但如今,额外的密度正转向更多的缓存和更多的内核,而不是直接地提高每个核心的速度。
另一方面,内存的实现要简单得多--更高的晶体管密度基本上意味着您可以将更多的存储单元打包到同一个包中,而无需进行任何复杂的重新设计。
基本上,随着晶体管密度的增加,存储器的尺寸特别好。处理器,没那么多。
发布于 2011-01-19 20:50:04
不是严格意义上的回答但是..。
你的问题意味着你想知道,由于摩尔定律的限制,函数式编程是否会不可避免。也许这就是重点所在。编程中新技术背后的主要驱动因素不是性能,否则我们都会编写程序集。主要的驱动因素是复杂性。新的编程技术和技术变得流行起来,因为它们使构建更大的系统变得更容易。
换句话说,如果函数式编程接手,那不是因为它提供了更好的性能,而是因为它能让你更快地构建更大的应用程序。这与摩尔定律无关。
发布于 2011-01-19 18:22:35
因此摩尔定律明确指出,晶体管的密度大约每18个月就会翻一番。这能有效地转化为更快的处理器和更多的RAM。让我们从几个比较中看一下。
1996年,线上桌面有大约300 MHz处理器,32 MBs内存和2GB硬盘驱动器。计算机正变得足够强大,使得MPEG音频格式(MP3)可以被解压缩并实时播放。人们关心基于虚拟机的语言(如Java )的性能。
2011年,我的手机拥有1 1GHz处理器512 MB内存,16 MB存储空间,可以播放MP3和几乎所有其他格式。
15年后,我的手机比我的计算机更强大,不仅用于应用程序开发,而且还用于另一个解释平台(.NET)。因此,是的,在时间允许的情况下,摩尔定律将使任何资源受限的东西成为一种可行的技术。
此外,我从未听说过函数式语言比OO更需要内存。
https://softwareengineering.stackexchange.com/questions/38213
复制相似问题