这可能是一个愚蠢的问题或过于开放,但我在 GHC 核心输出中寻找什么来了解内存分配发生在哪里?我的动机是更好地理解如何优化像 this 这样的代码。 ,或者例如尽量避免在并发代码的关键部分抢占。
最佳答案
let
s 通常是发生这种情况的地方,假设变量是 bounds id not kind #
(即 let-bound Int#
不会导致分配。)但是,实际上是 STG 定义了它发生的确切位置。
关于performance - 识别内存分配在核心中发生的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23003470/