6 private links
Description of linux tools to debug programs
Self-contained C/C++ profiler library for Linux
Simple-Stupid user-space program doing "kill -STOP" and "kill -CONT" to protect from thrashing
Thrashing: https://en.wikipedia.org/wiki/Thrashing_%28computer_science%29
As a software/game developer you, usually, want more and more... of everything actually! More pixels, more triangles, more FPS, more objects on the screen, bots, monsters. Unfortunately you don't have endless resources and you end up with some compromises. The optimization process can help in reduction of performance bottlenecks and it may free some available powers hidden in the code.
Hardware performance monitoring counters have recently received a lot of attention. They have been used by diverse communities to understand and improve the quality of computing systems: for example, architects use them to extract application characteristics and propose new hardware mechanisms; compiler writers study how generated code behaves on particular hardware; software developers identify critical regions of their applications and evaluate design choices to select the best performing implementation. We propose that counters be used by all categories of users, in particular non-experts, and we advocate that a few simple metrics derived from these counters are relevant and useful. For example, a low IPC (number of executed instructions per cycle) indicates that the hardware is not performing at its best; a high cache miss ratio can suggest several causes, such as conflicts between processes in a multicore environment.
Using valgrind and kcachegrind to see performance issue
See useful graph of output from unix perf tools