首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >QFileDialog内存泄漏?

QFileDialog内存泄漏?
EN

Stack Overflow用户
提问于 2014-07-01 14:20:00
回答 1查看 1K关注 0票数 7

我只是在编写一个小应用程序,其中我有如下功能:

代码语言:javascript
复制
QString askForDir()
{
    return QFileDialog::getExistingDirectory(this, "Choose directory", QString(""));
}

自从我添加了这个函数之后,我就提到在使用这个函数( askForDir() )之后,内存分配变得非常奇怪。

我使用OS仪器应用程序来调试需要,下面是我所得到的:

峰值是askForDir()函数工作的时刻,我指的是构建dir树.

在这些高峰之间,有什么都没有发生的空间,我的意思是应用程序什么也不做,只是等待用户的其他动作。

如您所见,内存分配正在增长。如果你想要数字:

代码语言:javascript
复制
at 30sec - 91 Mb
at 50sec - 113 Mb
at 1m15sec - 135 Mb

每次它在22 Mb生长

我尝试过探索它,并将askForDir()函数更改为类似于以下内容:

代码语言:javascript
复制
QString askForDir()
{
    return "/Users/username/Desktop";
}

我在上面说的话都消失了。因此,我得出结论,问题在QFileDialog中。

我用的是:

  • OS X 10.9.4
  • Xcode 5.1.1,碳
  • Qt 4.8.6

还有其他人有同样的“问题”吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-04 22:11:14

看来,我想通了。

这不是泄密,也不是窃听器。如果在windows上打开记事本,内存使用量为4mb。点击文件->打开,然后内存使用量增长到9mb。关闭对话框,您可以看到内存使用没有减少(或只是在8.9MB附近一点点)。Windows显然是在我们的背上缓存/创建东西(例如缓存)。->,这是用于本机使用的。

对于非本地人来说,是一样的。第一次打开QFileDialog Qt库时,会缓存一些图标以供以后使用。这是在应用程序级别。这使得文件目录中的导航,以及稍后打开对话框的速度要快得多。这不是泄密,当应用程序关闭时,所有的东西都发布了。

好像到处都在发生同样的事情,所以,我想,现在这个问题已经没有兴趣了。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24512584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档