90 年代后期,我在大学里学了一点 Haskell。在当时,尽管性能已经足够,而且比人们对这种高级语言的预期要好得多,但它仍然没有什么值得大书特书的地方。
事情变了。今天的 Haskell (GHC) 具有出色的性能,通常与 C/C++ 相差不远。那么,对这一改进贡献最大的编译器到底发生了什么变化?我知道几种经常使用的技术,例如更好的拆箱和严格性分析。我想对这些技术中的每一种对整体性能改进带来的定量贡献有一些粗略的了解。
如果您愿意,也可以用以下术语来描述这个问题:考虑 GHC Haskell 在 90 年代中期表现不佳的情况。为了使性能更接近 2013 GHC Haskell,需要改进的前 5 个方面是什么?