在http://goog-perftools.sourceforge.net/doc/tcmalloc.html中提到:“CMalloc目前不会将任何内存返回给系统。” 我猜这意味着如果我分配了42 MB并释放了它,系统就不会得到它,但下一次我分配47 MB时,它只会多占用5 MB?我的问题是:加载的dll或.so模块会发生什么情况。它们是否获得自己的内存块,直到程序退出才被释放。我问这个问题是因为如果我想编写运行时可更新的软件,我必须在不退出程序的情况下加载新的dll。所以我的问题是:如果我使用-ltcmalloc并且我不断地加载和卸载分配和释放内存的dll,那会导致内存使用量爆炸吗?我认为这是一个愚蠢的问题,但我不知道每个dll是否使用自己的内存分配方式,或者内存分配是按进程级别进行的。
malloc
。 - R.. GitHub STOP HELPING ICEmalloc
上花费的时间成为瓶颈,那么你需要解决更大的设计问题。这可能意味着你的数据分散在许多小的单独分配的对象中,这种情况下,局部性丧失、缓存溢出甚至交换到磁盘都可能是更大的性能问题。这并不是说这不是一个现实世界的问题。一些面向对象的GUI应用程序(包括KDE)以制造数百万个小分配而闻名... - R.. GitHub STOP HELPING ICE