tem*_*ema 6 c++ memory qt memory-leaks qfiledialog
我只是在写一个小应用程序,其中我的功能看起来像:
QString askForDir()
{
return QFileDialog::getExistingDirectory(this, "Choose directory", QString(""));
}
Run Code Online (Sandbox Code Playgroud)
因为我已经添加了这个函数,所以我提到在使用这个函数(askForDir()
)之后内存分配变得非常奇怪.
我使用OS X Instruments应用程序来调试需求,所以这就是我所拥有的:
峰值是
askForDir()
函数运作的时刻,我的意思是构建目录树.
在这些峰值之间有空间没有发生任何事情,我的意思是app什么都不做,只是等待用户的其他动作.
正如您所看到的,内存分配正在增长.如果你想要数字:
at 30sec - 91 Mb
at 50sec - 113 Mb
at 1m15sec - 135 Mb
Run Code Online (Sandbox Code Playgroud)
每次它都在增长 22 Mb
我试图探索它并将askForDir()
功能更改为smth,如下所示:
QString askForDir()
{
return "/Users/username/Desktop";
}
Run Code Online (Sandbox Code Playgroud)
我上面所说的一切都消失了.所以,我得出结论,问题出在QFileDialog中.
这是我正在使用的:
还有其他人有同样的"问题"吗?
看来,我想通了。
这不是泄漏,也不是错误。如果在 windows xp 上打开记事本,内存使用量为 4mb。单击文件-> 打开,然后内存使用量增长到 9mb。关闭对话框,您可以看到内存使用量并没有减少(或者只有 8.9Mb 左右)。Windows 显然是在我们背后缓存/创建东西(例如缓存)。-> 这是本机使用。
对于非本地人,它是一样的。第一次打开 QFileDialog Qt 库时会缓存一些图标供以后使用。这是在应用程序级别。这使得在文件对话框中导航,以及稍后再次打开对话框时的导航速度要快得多。这不是泄漏,当应用程序关闭时,一切都会被释放。
看起来到处都在发生同样的事情,所以,我认为,现在这个问题已经失去了兴趣。
归档时间: |
|
查看次数: |
695 次 |
最近记录: |