jan*_*oen 5 c++ macos multithreading
我正在研究一个多线程插件.当我在相当大的内存块(> 10 MB)上执行free()时,使用我的插件的应用程序会暂时放慢速度.(它是一个音频应用程序,音频线程的时间太少).我不确定free()是否使用了大量CPU,或者它是否阻塞了其他线程太长时间.似乎对madvice()的调用正在做很多工作.我习惯于花费很多时间(当我以32位模式运行时不会).
一些信息:OSX 10.8 64位插件和程序C++
任何有关如何继续的建议都非常受欢迎.
一个明显的建议当然是停止这样做(顺便说一句,free()这应该是 C++ 中的某种形式)。delete
只要您的插件仍然加载并处于活动状态(或者可能“正在运行”),就不要释放内存,当插件不再需要时释放资源。
如果您需要在释放旧缓冲区后重新分配新缓冲区,请找出一种重新使用已分配内存的方法。