程序在分析时运行良好,在没有分析时运行较慢

问题描述 投票:0回答:0

我正在观察以下执行时间:

  • ~9s 当用
    stack build
  • 编译时
  • ~5s 用
    stack build --profile
  • 编译

我希望非分析执行时间低于 1 秒,这告诉我上面的分析时间是有道理的,非分析时间异常缓慢。

更多细节:

  • 将堆栈 2.9.1 与 LTS 18.28、ghc 8.10.7 一起使用
  • 在 cabal 文件中:
  ghc-options:        -O2 -Wall -fno-warn-unused-do-bind -fno-warn-missing-signatures -fno-warn-name-shadowing -fno-warn-orphans
  ghc-prof-options:   -O2 -fprof-auto "-with-rtsopts=-p -V0.0001 -hc -s"
  • 我看过this related question,但是用
    -fno-state-hack
    编译没有帮助
  • 使用
    -O1
    编译没有帮助(与
    -O2
    大致相同),并且
    -O0
    明显较慢,正如预期的那样。
  • 分析信息显示没有罪魁祸首。该问题仅出现在非分析执行中。

我意识到我没有提供很多细节。特别是,我没有包含任何代码片段,因为它是一个大型代码库,而且我不知道它的哪一部分会触发此行为。我的观点确实是我不知道如何缩小范围。

所以我的问题不是“问题出在哪里?”,而是:鉴于明显的工具(分析)在这种情况下被证明是无用的,我该怎么做才能更接近问题的根源?

haskell profiling
© www.soinside.com 2019 - 2024. All rights reserved.