2016-11-09 73 views
1

是否可以在程序中设置RTS选项?在程序中设置RTS设置

具体来说,我想要达到相同

./my-prog +RTS -M4G

我知道哈斯克尔堆栈,你可以决定在编译时的一些RTS选项。但我不想在编译时修复这些选项,因为我希望我的程序从配置文件中读取这些选项,并让它知道这些选项。

GHC可以吗?

回答

0

我不认为可以从程序本身设置这些选项,但可以在运行时进行设置,配置分析只需要在您希望设置RTS选项的程序的外部。您可以编写一个程序/脚本来读取配置并运行您的目标程序,并传递所需的选项。

3

您可以编写一些C代码并覆盖一些GC挂钩,但最简单的方法可能是让脚本设置一个环境变量。该GHC用户指南列出了4种方式RTS选项可以设置: https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/runtime_control.html#setting-rts-options

有四种方法来设置RTS选项:运行时

  • + RTS ... -RTS之间,在命令行上程序 (设定在命令行上RTS选项)

  • 在编译时,使用-with-rtsopts(设定在编译时间 RTS选项)

  • 与环境变量GHCRTS通过在运行时系统覆盖“挂钩”(设定与 GHCRTS环境变量RTS选项)

  • (“挂钩”,以改变RTS 行为)