How to set up a Profiler Configuration File
Once executing an instrumented system has generated the proper file, you must have a profile converter process it in order to produce the Execution Profile. The need for the converter comes from the various formats that profilers use to record run-time information during an execution; a simple Profiler Configuration File enables you to describe the format used by any particular profiler.
The Profiler Configuration File is a file found in the directory $ISE_EIFFEL/studio/profiler where $ISE_EIFFEL is the location of the Eiffel installation. The name of the Profiler Configuration File in that directory is Eiffel for internal profiling and, for external profiling, the name of the profiler tool as specified in the profiler option. EiffelStudio comes with 3 preconfigured external profilers:
- gprof: GNU's gprof
- win32_ms: Visual C++ 5.0 or 6.0
- profiler.info: Pure Atria's Quantify
The Profiler Configuration File describes the structure of the file generated by the profiler. To create a new Profiler Configuration File for another profiler, just create a new file in the directory $ISE_EIFFEL/studio/profiler and fill it in.
Here is a complete example showing the various options that maybe specified:
-- Number of columns in the file.
-- Column where the index is stored.
-- Column where the time spent in the function is stored.
-- Column where the time spent in the descendents of a function is stored.
-- Column where the number of calls to a function is stored.
-- Column where the name of the function is stored.
-- Column where the percentage of time spent in the function is stored.
-- Column where the second percentage of time spent in the function is stored.
-- Says whether the profiler generates leading underscores (yes) or not (no).
As in Eiffel, -- introduces a comment, which has no effect on the specification. If one of the xxx_column options has a value of 0, this means that the files generated by the given profiler contain no such column. The order of the options is not significant.