gpt4 book ai didi

c++ - 在 64 位 Linux 上 boost 线程内存使用率

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:49:04 26 4
gpt4 key购买 nike

我在 32 位 Linux 上使用 boost 线程已经有一段时间了,对它们到目前为止的性能非常满意。最近该项目转移到 64 位平台,我们看到内存使用量大幅增加(从大约 2.5gb 到 16-17gb)。我做了分析,发现 boost 线程是巨大分配的来源。每个线程分配大约 10 倍于它在 32 位上所做的事情。

我使用 valgrind 的 massif 进行了剖析,并在单独的测试应用程序中仅使用 boost 线程确认了该问题。我也尝试使用 std::threads 代替,这些并没有出现大内存分配问题。

我想知道是否有其他人看到过这种行为并且知道问题出在哪里?谢谢。

最佳答案

没问题。这是虚拟内存,每个 64 位进程都可以在每个现代操作系统上分配数 TB 的虚拟内存。它基本上是免费的,没有理由关心它使用了多少。

它基本上只是为线程栈预留的空间。如果需要,您可以通过更改默认堆栈大小来减少它。但绝对没有理由这样做。

关于c++ - 在 64 位 Linux 上 boost 线程内存使用率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12135226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com