[英]QFileDialog memory leak?
我只是在寫一個小應用程序,其中我的功能看起來像:
QString askForDir()
{
return QFileDialog::getExistingDirectory(this, "Choose directory", QString(""));
}
由於我已經添加了這個函數,我已經提到使用這個函數( askForDir()
)后內存分配變得非常奇怪了。
我使用OS X Instruments應用程序來調試需求,所以這就是我所擁有的:
峰值是askForDir()
函數工作的時刻,我的意思是建立目錄樹。
在這些峰值之間有空間沒有發生任何事情,我的意思是app什么都不做,只是等待用戶的其他動作。
正如您所看到的,內存分配正在增長。 如果你想要數字:
at 30sec - 91 Mb
at 50sec - 113 Mb
at 1m15sec - 135 Mb
每次它以22 Mb
速度增長
我試圖探索它並將askForDir()
函數改為smth,如下所示:
QString askForDir()
{
return "/Users/username/Desktop";
}
我上面所說的一切都消失了。 所以,我得出結論,問題出在QFileDialog中。
這是我正在使用的:
還有其他人有同樣的“問題”嗎?
看來,我明白了。
這不是泄漏,也不是錯誤。 如果在Windows XP上打開記事本,則內存使用量為4mb。 單擊file-> open,然后內存使用量增長到9mb。 關閉對話框,您可以看到內存使用量沒有減少(或只是8.9Mb左右)。 Windows顯然是在我們的背上緩存/創建東西(例如緩存)。 - >這是本機用法。
對於非原生的,它是一樣的。 第一次打開QFileDialog Qt庫會緩存一些圖標以供以后使用。 這是應用程序級別。 這使得在filedialog中導航,以及稍后再次打開對話框的速度更快。 當應用程序關閉時,一切都被釋放,這不是泄漏。
看起來在任何地方都發生了同樣的事情,所以,我認為,這個問題現在已經引起了人們的興趣。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.