Online Eiffel Documentation
EiffelStudio

Profiling

The profiler is a tool that gives dynamic execution time information. It is very useful to detect which parts of a program need to be optimized most.

To use the profiler, the first thing to do is to enable it.

To enable the profiler:

By default the profiler will profile the entire program. However it is possible to enable or disable the profiler on certain clusters only. To do this:

It is also possible to dynamically start and stop the profiler in a program. To do this:

Tip: To profile only part of a program, turn off the profiler at the very beginning of the program, turn it on just before the part of the code that should be profiled, and turn it back off after this section. Typically, it results in the following code:

In the root feature:

	local
		ps: PROFILING_SETTING
			-- Other local variables if necessary.
	do
		create ps.make
		ps.stop_profiling
			-- Real program execution.
		ps.start_profiling
	end

And in the feature(s) that needs to be profiled:

	local
		ps: PROFILING_SETTING
			-- Other local variables if necessary.
	do
		create ps.make
		ps.start_profiling
			-- What needs to be profiled.
		ps.stop_profiling
	end

Note: Even if the profiler should only work in certain sections of code, the Profiling check box of the Projects Settings dialog must be checked or the profile option must be set on certain clusters.

Once the profiler has been enabled and the program has been recompiled, it is necessary to launch the program.

Tip: It is possible to profile debuggable(frozen/melted) executables as well as finalized ones. It is more interesting to profile finalized executables, though, since the execution speed is more representative of what will be obtained by your end users.

When the program exits, a file named 'profinfo' should be generated next to it.

All that's left to do is launch the Profiler wizard and follow the instructions.

See Also
Generating executables
Running a program
Tuning a program