##
Sample output

— profile start —

1020 ticks 43 modules 81412 syms

| 0.010s | 0.1% | Autos::copy(long, long, FileXML*, int, int) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | BinFolders::copy_from(BinFolders*) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | cstrdup(char const*) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | XMLBuffer::encode_data(char*, char const*, int) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | XMLBuffer::encoded_length(char const*, int) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | PluginClient::send_configure_change() /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | UndoVersion::scan_lines(UndoHashTable*, char*, char*) /mnt0/.../cin
| 0.010s | 0.1% | UndoStackItem::set_data(char*) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | UndoStack::load(_IO_FILE*) /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | BC_Bitmap::cur_bfr() /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | YUV::init_tables(int, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*, int*) /mnt0/build5/cinelerra-5.1/bin/cin

...
...
— profile calls —

| 0.010s | 0.1% | AutoConf::save_xml(FileXML*) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | Automation::copy(long, long, FileXML*, int, int) 1.0 /mnt0/.../cin
| 0.010s | 0.1% | AWindow::run() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | Canvas::stop_single() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | ColorPicker::new_gui() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | ColorWindow::create_objects() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | PaletteWheel::draw(float, float) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | PaletteHex::update() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | CWindowGUI::draw_status(int) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 0.010s | 0.1% | CWindowCanvas::status_event() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin

...
...

| 0.990s | 9.7% | BC_Xfer::xfer_slices(int) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 1.880s | 18.4% | DirectUnit::process_package(LoadPackage*) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 1.880s | 18.4% | DirectUnit::rgba8888() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 3.910s | 38.3% | __init_array_end 1.1 /mnt0/build5/cinelerra-5.1/bin/cin
| 5.450s | 53.4% | LoadClient::run() 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 7.890s | 77.4% | Thread::entrypoint(void*) 1.0 /mnt0/build5/cinelerra-5.1/bin/cin
| 7.890s | 77.4% | start_thread 1.0 /lib64/libpthread-2.28.so

—
—

| 0.010s | 0.1%/ 0.0% | /lib64/libm-2.28.so
| 0.010s | 0.1%/ 0.0% | /lib64/libexpat.so.1.6.8
| 0.020s | 0.2%/ 0.1% | /lib64/libXext.so.6.4.0
| 0.020s | 0.2%/ 0.1% | /lib64/libXft.so.2.3.2
| 0.020s | 0.2%/ 0.1% | /lib64/libxcb.so.1.1.0
| 0.040s | 0.4%/ 0.2% | /lib64/ld-2.28.so
| 0.050s | 0.5%/ 0.2% | /lib64/libpng16.so.16.34.0
| 0.130s | 1.3%/ 0.6% | /lib64/libX11.so.6.3.0
| 0.180s | 1.8%/ 0.8% | /lib64/libz.so.1.2.11
| 0.200s | 2.0%/ 0.9% | /lib64/libfontconfig.so.1.12.0
| 0.380s | 3.7%/ 1.8% | /lib64/libpthread-2.28.so
| 1.660s | 16.3%/ 7.7% | /lib64/libc-2.28.so
| 7.480s | 73.3%/34.7% | /mnt0/build5/cinelerra-5.1/bin/cin

10.200t 0.001u+0.000s 21.566r 47.3%
— profile end —

The summary line above in Bold represents the User time, System time, Real time and the percentage is how much Timer time elapsed over Real time so in this case the measurement covers 47.3% of time.

So why use a Profiler? Because it is the “ls” for executable functions!!