似乎我经常听到人们批评某些编程语言,因为他们“表现不佳”,或者因为其他一些语言一般“更快”(不一定针对特定应用).但是,我的经验和教育告诉我,无论何时遇到性能问题,至少可能
>瓶颈不在CPU中,而在于其他一些设备,例如网络或硬盘驱动器.
>性能不佳是由您的算法引起的,而不是由您使用的语言引起的.
我的总体印象是,编程语言本身的速度在绝大多数情况下都是无关紧要的,严重的数据处理问题除外.即使在这些情况下,我相信您可以使用混合方法,并且仅针对CPU密集型部分使用较低级别的语言,这样您就不会完全失去更抽象语言的好处.
你同意吗?编程语言的速度在大多数时候都是微不足道的,还是评论家有权指出语言表现问题?
我希望这个问题不是太主观,但在我看来应该有一个相对客观的答案.
在图书馆,操作系统等中,性能可能是一个严重的问题.但是,我相信超过90%的原始性能是无关紧要的.在许多情况下更重要的是TIMING.任何垃圾收集语言在这方面都会有一些不可预测性,这使得它们不适合嵌入式和实时设计空间.
GC’d和“慢”语言的重叠是相当大的,因此当真正的问题是不一致的时间时,你可能会看到一种语言因速度原因而打折.
有一些分配/线程/等.允许垃圾收集的方案,同时也保证了系统部分的运行时间,例如Realtime Java,尽管我没有亲自看到它在任何地方使用过.
简短回答:大多数时候语言的速度是无关紧要的(在合理范围内),语言选择是基于熟悉程度和可用的库.