程序性能优化
王健
无言
展开
-
如何查看cpu是否支持sse指令级
Mac:命令:sysctl -a | grep machdep.cpu.features结果:machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX SMX EST TM2 SSSE3 FMA CX16 TP原创 2021-01-17 22:05:11 · 4414 阅读 · 0 评论 -
初识valgrind
valgrind是一款非常优秀的性能调优工具,经常使用到的模块主要有下面6个:Memcheck:内存错误检测Cachegrind:缓存和分支预测分析Callgrind:性能分析图Helpgrind:线程错误分析系Missif:堆分析DRD:线程错误分析如果使用valgrind,编译程序是尽量加上-g选项,这样valgrind的输出会包含行号,这样可以帮我们更方便地分析结果。...原创 2020-11-16 23:45:54 · 162 阅读 · 0 评论 -
程序性能优化之分支预测
程序是由多条指令构成的,程序的运行便是cpu一条一条执行程序指令的过程。一条指令的执行过程大致可以分为加载指令,翻译指令,加载数据,执行运算,更新数据几个阶段,每个阶段都由单独的运算单元去执行。为了提高性能,各阶段是并行执行的,即当前指令的流程到了执行运算阶段,下一条指令的流程有可能已经到了加载数据阶段。这样做至少有两个优点:单元复用和并行执行。即使同一个阶段,多条指令流程也是可以并行执行的,如执行运算阶段,加法运算和乘法运算时可以同时执行的。下图是一张现代cpu运算单元的简单模型(摘自《深入理解计算机系统原创 2020-11-08 23:14:38 · 722 阅读 · 0 评论 -
程序性能优化工具——gprof
gprof是程序性能分析的一个重要工具,通过gprof工具可以获取程序中函数之间的调用关系,每个函数的调用次数,及函数的消耗时间,从而为程序性能优化指明方向。由此也可以推断出,一个合理的程序设计是相当重要的,很难想象,一个结构杂乱,耦合严重的程序如何进行优化。gprof工具的使用非常简单,下面将对该工具进行简单的介绍。环境:centos7.2,gcc 4.8.5代码gprof_example.c如下:/* * @file gprof_example.c * @brief 统计/etc/au原创 2020-11-07 19:04:37 · 592 阅读 · 0 评论