jemalloc delete 物件 出現 segmentfault
專案中原本是用 tcmalloc 管理記憶體,後來切換為 jemalloc。切換後在多執行緒程式中表現比原來好,但是程式出現了偶爾 crash 的問題
經排查發現是 delete 物件時出現問題,delete 的指標是父類的指標,但是實際上是子類的物件,父類和子類大小不同,於是出現 segmentfault
用 tcmalloc 和 gcc 自帶的記憶體管理器不會有這個問題,可能是內部做了檢查。
專案中原本是用 tcmalloc 管理記憶體,後來切換為 jemalloc。切換後在多執行緒程式中表現比原來好,但是程式出現了偶爾 crash 的問題
經排查發現是 delete 物件時出現問題,delete 的指標是父類的指標,但是實際上是子類的物件,父類和子類大小不同,於是出現 segmentfault
用 tcmalloc 和 gcc 自帶的記憶體管理器不會有這個問題,可能是內部做了檢查。