簡體   English   中英

F#交互式GC堆轉儲

[英]F# interactive GC heap dump

我正在研究通過FsiAnyCpu運行的F#腳本,該腳本占用了大量內存。 我使用PerfView拍攝了一個堆快照,看起來大多數高計數節點都植根於FSharp.Compiler!Microsoft.FSharp.Compiler.Ilxgen+IlxAssemblyGenerator 在拍攝快照之前,我強行執行了GC並凍結了整個過程。

默認的獨占視圖顯示:

在此處輸入圖片說明

這是可以預期的嗎?

FSI生成程序集以包含您評估的代碼。 該代碼可以保存對堆對象的根引用。 您評估的表達式也可能導致植根引用。 FSI可能是由於設計原因而導致的內存泄漏-如果REPL不記得您之前評估過的內容,那么它可能沒有用。 出於相同的原因,它也可以保存對文件和程序集的開放引用。

在Visual Studio中,FSI提供了一個上下文菜單命令,稱為“重置交互式會話”,它可以清理所有內容。 對於命令行FSI,大概可以終止它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM