我只是在编写一个小应用程序,其中我有如下功能:
QString askForDir()
{
return QFileDialog::getExistingDirectory(this, "Choose directory", QString(""));
}自从我添加了这个函数之后,我就提到在使用这个函数( askForDir() )之后,内存分配变得非常奇怪。
我使用OS仪器应用程序来调试需要,下面是我所得到的:

峰值是askForDir()函数工作的时刻,我指的是构建dir树.
在这些高峰之间,有什么都没有发生的空间,我的意思是应用程序什么也不做,只是等待用户的其他动作。
如您所见,内存分配正在增长。如果你想要数字:
at 30sec - 91 Mb
at 50sec - 113 Mb
at 1m15sec - 135 Mb每次它在22 Mb生长
我尝试过探索它,并将askForDir()函数更改为类似于以下内容:
QString askForDir()
{
return "/Users/username/Desktop";
}我在上面说的话都消失了。因此,我得出结论,问题在QFileDialog中。
我用的是:
还有其他人有同样的“问题”吗?
发布于 2014-07-04 22:11:14
看来,我想通了。
这不是泄密,也不是窃听器。如果在windows上打开记事本,内存使用量为4mb。点击文件->打开,然后内存使用量增长到9mb。关闭对话框,您可以看到内存使用没有减少(或只是在8.9MB附近一点点)。Windows显然是在我们的背上缓存/创建东西(例如缓存)。->,这是用于本机使用的。
对于非本地人来说,是一样的。第一次打开QFileDialog Qt库时,会缓存一些图标以供以后使用。这是在应用程序级别。这使得文件目录中的导航,以及稍后打开对话框的速度要快得多。这不是泄密,当应用程序关闭时,所有的东西都发布了。
好像到处都在发生同样的事情,所以,我想,现在这个问题已经没有兴趣了。
https://stackoverflow.com/questions/24512584
复制相似问题