Skip navigation.

Sysprof 1.0 Released

Linux
Linux

Version 1.0 of the Sysprof Linux Profiler has been released. Download version 1.0 here, and read the release notes here.

Sysprof is a CPU profiler that uses a Linux kernel module to profile the entire system as it runs. The call graph can be browsed easily with the GTK+ based graphical interface (screenshot).

  • Full support for threads and shared libraries
  • No recompilation or other instrumentation of applications is necessary.
  • Profiles can be loaded and saved.
  • Supports both x86 and x86-64 architectures

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

libiberty

Why the hard dependency on libibeby? The official documentation for libiberty[1] says that "...libiberty is generally not installed on its own..." and "...the easiest way to use libiberty in your projects is to drop the libiberty code into your project's sources..."

Is there a reason why you haven't just included a copy of it in the sysprof sources? The reason I'm asking is that I don't like installing libraries that clearly states that they shouldn't be installed :-)

Anyway, this is a really needed program, great work!

Isak

[1]http://gcc.gnu.org/onlinedocs/libiberty/Using.html#Using

libiberty

Basically the reason is that memprof has a hard dependency, and I lifted all the binary file handling from there. For various other
reasons, I may end up redoing the file handling anyway - in that case I'll probably end up not depending on any external libraries at all.

multi process tasks

Suppose for example that you want to understand while window resizing is slow under gnome. You suspect that the answer is one of:
- X11 sucks
- gnome sucks
- metacity sucks

With a system profiler, you can prove that they all suck at the same time :-)

Seriouly, a system profiler could be used to profile tasks that require communications between multiple applications. In my example above, you could figure out that metacity is eating most of the CPU to redraw its windows borders hundreds of times per seconds so the application is never given a chance to draw its content.

What is it good for?

Looks crazy, bit can anyone tell me what profiling the system is good for? Is it an advanced "top" or something?

A tool for developers

A profiler is a tool for developers. It's not something an end-user is supposed to use so there's no relationship to top at all.

The purpose of a profiler is to examine your program while it runs. Creating a profile of execution time will help you find out which parts should be optimized for speed. A profile for memory consumption may suggest a change of data structures or a switch of algoritm. There are many things to profile but it's always about gathering data so that you can analyse and improve your code.