我使用全新安装的 qt 5.1.0 64 linux。
我使用示例应用程序 qtbase/examples/widgets/widgets/lineedits 并运行,我们称之为 qt5_lineedit,我也从 qt4 源中获取类似的应用程序,使用 qt4 库构建它并运行。
在 htop 中我看到,有两个 qt5_lineedit(我只运行一个,所以它使用了 2 个线程)和内存使用量:VIRT 223M RES 18268。
而对于 qt4_lineedit 只存在一个进程并且它会吃掉:VIRT 126M RES 15848。
所以,
- 为什么qt5默认使用两个线程?
- 为什么虚拟内存大小差异如此之大?
更新。
尽管 qt5_lineedit 使用 2 个 pid,但它们不是进程,而是线程。所以关于 qt4_lineedit 的信息看起来像:
VmPeak: 130936 kB
VmSize: 130932 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 17140 kB
VmRSS: 17140 kB
VmData: 4524 kB
VmStk: 136 kB
VmExe: 28 kB
VmLib: 48232 kB
VmPTE: 220 kB
VmSwap: 0 kB
Threads: 1
有关 qt5_lineedit 的信息如下所示:
VmPeak: 278020 kB
VmSize: 228584 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 18268 kB
VmRSS: 18268 kB
VmData: 77468 kB
VmStk: 136 kB
VmExe: 28 kB
VmLib: 50056 kB
VmPTE: 288 kB
VmSwap: 0 kB
Threads: 2