文章分类 - 二十、程序性能优化工具
摘要:1、当确定函数没有异常的使用,使用noexcept 在 C++11 中,noexcept关键字用于表示函数不会抛出异常。使用noexcept的主要原因是为了提高代码的效率和性能。 在 C++中,函数的默认行为是可以抛出异常的。这意味着在函数内部如果发生了异常,程序会跳转到异常处理代码,并执行相应的处
阅读全文
摘要:一、介绍 首先,先介绍一下 Sanitizer 项目,该项目是谷歌出品的一个开源项目,该项目包含了 ASAN、LSAN、MSAN、TSAN等内存、线程错误的检测工具,这里简单介绍一下这几个工具的作用: ASAN: 内存错误检测工具,在编译命令中添加-fsanitize=address启用 LSAN:
阅读全文
摘要:1、设置运行linux系统生成coredump文件 设置允许生成coredump vim /etc/profile ulimit -c unlimited source /etc/profile 查看是否支持生成coredump $ ulimit -a | grep core core file s
阅读全文
摘要:以下是C和C++的性能调优工具,包含工具介绍和链接: (1)Valgrind:一款非常流行的内存调试和性能分析工具,可以检测内存泄漏、死锁等问题,并提供CPU性能分析工具。它可以跟踪程序中的所有内存分配和释放操作,并在程序执行时给出详细的报告。Valgrind是一个开源工具,支持Linux和MacO
阅读全文
摘要:对于运行在Linux上的分布式系统,一个标准的性能调优建议是调整tcp_rmem和tcp_wmem内核可调参数。但是这些是什么呢?为什么它们很重要?它们是如何工作的? 一、理解TCP缓冲区 为了更好地理解TCP缓冲区是如何工作的,让我们研究这样一个场景:“应用程序A”(客户端)希望通过TCP将数据发
阅读全文
摘要:系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。 性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。 通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 (p
阅读全文
摘要:一、valgrind介绍 Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。 Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测
阅读全文