是否可以在程序中设置RTS
选项?
具体来说,我想实现与
相同的目标 ./my-prog +RTS -M4G
我知道使用haskell堆栈,您可以在编译时决定一些RTS选项。但我不想在编译时修复这些选项,因为我希望我的程序从配置文件中读取这些选项,并让它知道这些选项。
这可以用GHC吗?
答案 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选项的程序外部。您可以编写程序/脚本来读取配置并运行目标程序,传递所需的选项。