close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 15 years ago

Last modified 12 years ago

#770 assigned enhancement

A new frequence oriented profiler for TOL functions

Reported by: Víctor de Buen Remiro Owned by: Jorge
Priority: normal Milestone: Mantainance
Component: Kernel Version:
Severity: major Keywords:
Cc:

Description

Current TOL profiler builds a report about execution time of each TOL function and is controlled with

  Real TolOprProfiler.Enabled := True;
  ...
  Real TolOprProfiler.Dump(Text pathPrefix) ;

Current measurement method is to take the difference of values of BSys::SessionTime() between starting and ending of each function call.

Then, this total time integrates the time used by all functions called inside a function. So almost always the time is assigned to functions like EvalSet, For, While, etc.; which has no significance in order to know were the time is lost.

A complementary measurement could be done by means of an external process that annotates the current running function at regular time interval. Dividing the total time proportionally to the frequence of times each function has been found as the current one, we can get a good aproximation of real time lost in each one.

Change History (6)

comment:1 Changed 14 years ago by Víctor de Buen Remiro

Status: newaccepted

At C and C++ level, there are external profiling tools that can help to find bottlenecks :

For Linux

*gprof

For windows:

comment:2 Changed 12 years ago by Jorge

Owner: changed from Víctor de Buen Remiro to Jorge
Status: acceptedassigned
  • Un hilo contador del profiler
  • TolOprProfiler::current_->tickCounter_++
  • Real TolOprProfiler.Init(Real tickResolution)

comment:3 Changed 12 years ago by Jorge

(In [5754]) refs #770, se necesitan las lib boot_thread y boost_system

comment:4 Changed 12 years ago by Jorge

(In [5756]) refs #770, midiendo el tiempo de ejecución de las funciones mediante un thread.

Hay que enlazar con boost_thread y boost_system

comment:5 Changed 12 years ago by Jorge

(In [5759]) refs #770, deshabilitamos el thread hasta tener una lib de boost que compile bien con tol en VC9.

comment:6 Changed 12 years ago by Jorge

(In [5912]) refs #770, Profiler Test

Note: See TracTickets for help on using tickets.