You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在Haskell文件顶部设置GHCi命令行选项?编译后是否保留?

在Haskell源文件中自动启用GHCi选项的方法

1. 在源文件中设置GHCi交互选项

可以在Haskell源文件开头添加GHCi命令注释,让GHCi加载文件时自动执行这些命令。比如要启用+s选项(显示求值时间和内存分配信息),只需在文件最顶部添加:

-- :set +s

当你用ghci yourfile.hs加载该文件时,GHCi会自动执行这条:set +s命令,之后每次在交互模式下执行表达式,都会自动输出对应的性能统计信息。

注意:这种方式仅适用于GHCi的交互选项(如+s、+r等);如果是GHC编译器层面的选项(如优化级别、语言扩展),则需要使用{-# OPTIONS_GHC ... #-}编译指示,例如:

{-# OPTIONS_GHC -O2 -Wall #-}

2. 编译为可执行文件后的选项保留情况

GHCi的交互选项(如+s)不会被保留到编译后的可执行文件中。+s是GHCi交互模式特有的功能,用于在交互式求值时展示性能数据;而编译后的可执行文件是脱离GHCi运行的独立二进制程序,完全不依赖交互环境,因此这些选项对编译后的程序没有任何作用。

如果需要编译后的程序输出时间、内存等性能信息,你需要手动在代码中添加相关逻辑,比如使用System.CPUTime模块测量CPU时间,或者GHC.Stats模块获取内存分配数据,然后在程序中打印这些信息。

内容的提问来源于stack exchange,提问作者NickS1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 01:32:39