我如何打开专门化以消除运行时字典传递?



在查看我编写的一些Purescript代码的糟糕运行时性能时,我注意到生成的Javascript代码包含传递重载定义的字典,例如transformersmonads。然而,我导出的所有函数都是单态的,所以编译器应该没有问题专门化这些重载事件。

如果这是用GHC编译的Haskell,我会检查优化标志,以及确保没有标记为NOINLINE的东西,并且展开适当地暴露为可专业化的定义。Purescript的等效技术是什么?

PureScript v0.15.3对编译器在创建和使用过程中创建的表达式进行了"公共子表达式消除"的优化typeclass字典。"也许这将加快你的代码。

最新更新