Showing posts with label Valgrind. Show all posts
Showing posts with label Valgrind. Show all posts

Tuesday, February 19, 2019

Performance / Optimization

1. Practical Performance
 - gprof
 - PAPI
 - Callgrind
 - Compiler Flags

1.1
 - IA-32 (32 bit, intel architecture 32 bit, i386): the 32 bit version of the x86 instruction set
 - AMD64 (64 bit, x64, x86_64, AMD64); the 64 bit version of the x86 instruction set
1.2 SIMD
 SISD (single instruction, single data) vs. SIMD (single instruction, multiple data)
 - SIMD 병렬 프로그래밍


Thursday, December 13, 2018

CPU profiler


1. CPU profilter
1. 1 gprof, Valgrind and gperftools - an evaluation of some tools for application level CPU profiling on Linux

1.2 List of performance analysis tools

2. Valgrind
 - memory leak profiling: $ valgrind ./sample
 - cache profileing: $ valgrind --tool==cachegrind ./sample
 - function profiling: $ valgrind --tool==callgrind ./sample
 - kcachegrind (GUI tool)

3. gprof
 - WIKI
 - tutorial: https://www.thegeekstuff.com/2012/08/gprof-tutorial/
 - What is gprof?
 - How to install and use profiling tool Gprof on Linux
 - GPROF Tutorial
    To write the gmon.out file properly, your program must exit normally. _exit()
    Call graph: gprof2dot
 - gprof Quick-Start Guide


  • use the makefile (edit CFLAGS / FFLAGS first) or call compiler at the shell
  • required flags for profiling: -pg -g
  • try with and without inlining: -finline / -fno-inline


4. gprof2dot