0

我尝试使用 Qt 分析我的一个应用程序。我发现的结果似乎表明 Qt 是一个大线程用户。它似乎创建和销毁线程很多。这是其内存消耗的峰值。是真的吗?

因此,我尝试对“如何优化 Qt 应用程序”进行一些研究,但是,我目前还没有找到任何相关的东西。

所以我想知道是否有任何可以优化的 Qt 编程“通用方式”。我应该以特定方式使用线程吗?除了尊重 C++ 标准、编译器中的 -pedantic 选项等等,我还能做任何事情吗?

4

2 回答 2

0

一般来说,如果你创建和销毁线程很多,那么这可能不是一个很好的设计。假设您的线程执行相同(或类似)的事情,然后拥有一个固定的线程“池”,只要它需要运行,然后当您当前的代码破坏线程时就会放回池中。

或者,让线程永远运行,并通过一些合适的 IPC 为其提供数据。

我还要说,除非您正在做一些非常特别的事情,如果某件事需要不到四分之一秒的时间来完成,那么您不应该创建一个线程来执行此操作。这不是一个固定的规则。

线程本身不会使用那么多内存,但每个线程的堆栈可能会使用相当多的内存。

于 2013-03-08T14:13:48.877 回答
0

如果您经常创建和销毁 QThreads,请考虑使用QThreadPoolQtConcurrent。这些将保留线程并按需提供服务。

如果您没有经常创建和销毁线程,那么您的问题就出在其他地方。

于 2013-03-08T18:17:55.870 回答