Performance 使用编译代码复制runghc性能

Performance 使用编译代码复制runghc性能,performance,haskell,ghci,runhaskell,Performance,Haskell,Ghci,Runhaskell,我使用堆栈runghc“作为脚本”运行应用程序。自然地,它以这种方式运行时比使用stack exec编译和运行时慢 我想将应用程序运行时的热点与编译版本的“runghc”进行比较 我能够通过堆栈构建--profile编译启用了评测的应用程序,然后生成一个火焰图,如前所述 是否有任何一组编译标志可用于生成与runghc执行的二进制文件相同(编辑:就性能而言)的可配置文件二进制文件?在我看来,这似乎是一个矛盾-“一组编译标志[…到…]生成与runghc执行的配置文件相同的可配置文件二进制文件”run

我使用
堆栈runghc
“作为脚本”运行应用程序。自然地,它以这种方式运行时比使用
stack exec
编译和运行时慢

我想将应用程序运行时的热点与编译版本的“runghc”进行比较

我能够通过
堆栈构建--profile
编译启用了评测的应用程序,然后生成一个火焰图,如前所述


是否有任何一组编译标志可用于生成与
runghc
执行的二进制文件相同(编辑:就性能而言)的可配置文件二进制文件?

在我看来,这似乎是一个矛盾-“一组编译标志[…到…]生成与runghc执行的配置文件相同的可配置文件二进制文件”
runghc
不编译您的程序;它解释了它。来自:“runghc允许您运行Haskell程序,而无需首先编译它们。”。解释程序不会从优化中受益,因此即使您可以分析它,您也无法提高性能(当然,除了通过优化编译它)。我已经澄清了文本-如果可能的话,我想获得一个可配置文件的二进制文件,它的执行与代码的解释执行相同。此二进制文件的火焰图仍有助于识别解释代码中的算法性能问题,并从教学角度比较解释性能与优化编译性能。GHC解释的代码和GHC编译的代码的性能完全不可能相同,即使没有对编译版本进行优化。也不可能使用GHC编译器的评测机制评测GHC解释的程序。您可以将这些视为GHC的局限性,但我会将它们视为不同工作的不同工具。此外,我不认为比较编译和解释的性能有教学价值——GHC的这些部分具有完全不同的操作语义(从字面上说是苹果到橙子)。在我看来,这似乎是一个矛盾——“编译标志集[…到…]生成与runghc执行的配置文件相同的可配置文件二进制文件”
runghc
不编译您的程序;它解释了它。来自:“runghc允许您运行Haskell程序,而无需首先编译它们。”。解释程序不会从优化中受益,因此即使您可以分析它,您也无法提高性能(当然,除了通过优化编译它)。我已经澄清了文本-如果可能的话,我想获得一个可配置文件的二进制文件,它的执行与代码的解释执行相同。此二进制文件的火焰图仍有助于识别解释代码中的算法性能问题,并从教学角度比较解释性能与优化编译性能。GHC解释的代码和GHC编译的代码的性能完全不可能相同,即使没有对编译版本进行优化。也不可能使用GHC编译器的评测机制评测GHC解释的程序。您可以将这些视为GHC的局限性,但我会将它们视为不同工作的不同工具。此外,我不同意比较编译和解释的性能有教学价值——GHC的这些部分具有完全不同的操作语义(字面上是苹果对桔子)