Gloss动画在GHCi中卡顿,如何添加-O2优化解决?
解决GHCi中Gloss动画卡顿的问题
核心原因
GHCi默认使用字节码解释器运行代码,而-O2优化标志仅对目标代码编译有效,和字节码解释器不兼容,所以直接:set -O2会被忽略,导致动画仍卡顿。
可行解决方案
方法1:启用GHCi的目标代码编译模式
启动GHCi时直接指定参数,或者在GHCi内部设置:# 启动时直接加参数 ghci -fobject-code -O2 -threaded或者进入GHCi后执行:
:set -fobject-code -O2 -threaded :r # 重新加载模块 main-fobject-code让GHCi将模块编译为机器码而非字节码,这样就能正常启用-O2和-threaded优化,提升动画流畅度。方法2:用Cabal Repl替代原生GHCi
既然你的cabal文件已经配置了ghc-options: -O2 -threaded,直接运行:cabal replCabal会自动应用配置中的编译选项,且默认使用目标代码模式,无需额外设置,加载模块后运行
main即可获得优化后的性能。备选方案:编译后运行
如果上述方法仍有问题,继续使用你已经验证有效的方式:cabal build # 运行生成的exe文件
内容的提问来源于stack exchange,提问作者chansey
相关产品推荐
相关产品推荐

