ForeignPtrにcの関数をセットするaddCFinalizerToWeak#があるのですが、
呼び出しに200nsほどかかります。(条件によって変わってきますが。)
https://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/GHC-Prim.html#v:addCFinalizerToWeak-35-
https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/PrimOps.cmm#L832-871
どこにそんなに時間がかかっていると思いますか?
( LOCK_CLOSURE、updateRemembSetPushPtr、 recordMutableのどれかがほとんどの時間が使っていると思いますが。)
どうしたら内部の関数のマイクロベンチマークがとれますか?
呼び出しに200nsほどかかります。(条件によって変わってきますが。)
https://hackage.haskell.org/package/ghc-prim-0.5.2.0/docs/GHC-Prim.html#v:addCFinalizerToWeak-35-
https://gitlab.haskell.org/ghc/ghc/-/blob/master/rts/PrimOps.cmm#L832-871
どこにそんなに時間がかかっていると思いますか?
( LOCK_CLOSURE、updateRemembSetPushPtr、 recordMutableのどれかがほとんどの時間が使っていると思いますが。)
どうしたら内部の関数のマイクロベンチマークがとれますか?