内存泄漏和代码性能
Memory leak and performance of the code
修复内存泄漏是一件好事,但我想知道除了内存问题之外,内存泄漏修复是否也有助于提高性能。
一般来说,是的。主要原因是由于内存泄漏,您的程序会不断从系统中获取不会在缓存中的新内存。如果正确释放内存,您很快就会恢复相同的内存,并且它已经在缓存中。
很可能不是很明显。它可能会稍微提高缓存性能。如果您的系统在没有可用内存的情况下运行,这也可能会产生性能差异,但几乎可以肯定的是,您的系统中会有更大、更明显的性能瓶颈。
内存泄漏实际上以某种方式提高了性能,因为您可以节省解除分配 XD 的时间。但是,当然,当可用内存不足时,您的系统肯定会遇到某种性能问题。
这可能在很大程度上
取决于您的代码。例如,delete 是调用对象的析构函数(除了花时间释放内存),这可能很耗时,具体取决于析构函数的代码。另一方面,缓存未命中与小对象相关,而页面错误与非常大的对象有关,因此避免内存泄漏也可以显着提高性能。
也就是说,性能优化很可能比这低得多。
相关文章:
- GCC 和 Clang 代码性能的巨大差异
- 如何使用本征提高性能?(包括示例代码)
- 在.cpp文件中定义方法而不是在 C++ 的 .h 文件中定义方法时,如何提高代码的性能?
- 使用 const double* const 作为模板参数 - 代码性能问题
- 如何在没有性能命中的情况下抽象SIMD代码来处理不同的数据类型
- 为什么 C++ 代码实现的性能不比 python 实现更好?
- 如何提高此 OpenCL 缩减内核代码的性能?
- 相同的代码在不同的 gcc 编译器中存在巨大的性能差异
- 如何基准C 代码的性能
- 相同的代码执行两次:性能差异
- 附加到 C++/CLI dll 的性能探查器无法访问本机C++代码
- 牢记干净的代码的性能,什么更好
- 在将其尺寸较大的向量移动到容量较小的向量之前,是否可以通过使用Reserve()来提高代码性能
- 如何提高四叉树代码的性能以防止程序冻结
- C++多线程性能比单线程代码慢
- 在C++代码中使用纯 C 库是否有性能下降/损失
- 如何使用QueryPerformanceCounter测试现有代码的性能
- 公开类的内部组件,以防止编写过多代码和影响性能
- 从编译器优化和代码性能的角度来看,"if constexpr"与"if"
- C++按字符串调用函数,比较PHP的性能,如何在C++中优化代码