2017-01-29 7 views
0

Я понимаю, от here что использовать ThreadScope мне нужно собрать с EventLog и rtsoptions, например, «-rtsopts -eventlog -threaded»Профилирование с ThreadScope с аргументами командной строки в Haskell

Я использую стек, поэтому мой компиляции вызов выглядит так:

$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -rtsopts -eventlog -threaded mycoolprogram.hs 

В то время как обычно, я делаю:

$ stack ghc -- -O2 -funfolding-use-threshold=16 -optc-O3 -threaded mycoolprogram.hs 

Это нормально компилируется. Тем не менее, моя программа занимает 2 и только 2 позиционные аргументы:

./mycoolprogram arg1 arg2 

Я пытаюсь добавить опции RTS +RTS -N2 -l, например, так:

./mycoolprogram arg1 arg2 -- +RTS -N2 -l 

Или

./mycoolprogram +RTS -N2 -l -- arg1 arg2 

Как может Я одновременно запускаю свою программу с аргументами, которые идут в System.Environment.getArgs (например, here), а также включают эти профилирующие флаги?

+0

'./mycoolprogram arg1 arg2 + RTS -N2 -l' или './mycoolprogram + RTS -N2 -l -RTS arg1 arg2' должен работать. – sjakobi

ответ

2

Как @sjakobi сказал, что вы можете использовать +RTS ... -RTS other arguments или other arguments +RTS ... формы, но есть также возможность передать их в переменной окружения GHCRTS:

GHCRTS='-N2 -l' ./mycoolprogram arg1 arg2 

Затерянный более информация доступна в GHC users guide.

 Смежные вопросы

  • Нет связанных вопросов^_^