在程序内设置RTS设置

时间:2016-11-09 22:23:44

标签: haskell ghc

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

具体来说,我想实现与

相同的目标

./my-prog +RTS -M4G

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

这可以用GHC吗?

2 个答案:

答案 0 :(得分:3)

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

设置RTS选项有四种方法:

  • 在运行程序时+ RTS ... -RTS之间的命令行上 (在命令行上设置RTS选项)

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

  • 使用环境变量GHCRTS(使用。设置RTS选项) GHCRTS环境变量)

  • 通过覆盖运行时系统中的“hooks”(“Hooks”来更改RTS 行为)

答案 1 :(得分:0)

我不相信这些选项可以在程序本身内设置,但是当然可以在运行时设置配置解析只需要在您希望设置RTS选项的程序外部。您可以编写程序/脚本来读取配置并运行目标程序,传递所需的选项。