Skip to content

r-kan/semile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

semile :)

~Simpler way to profile and diagnose~ http://r-kan.github.io/semile/

2016/10/07: c interface is supported
2016/09/24: semile is refined with much more simpler use model!

What is semile?

A profiling framework provides the ability to monitor programs, in general of any programming language, by the following two pieces of information:

  • consumed time per execution
  • 'footprint' debug message per execution

Difference with other profiling tools?

  • Profile 'semantically' Each call to the same function plays its individual role within profiling. Normal 'syntactic' profilers are good in other aspects but fail to achieve this.
  • Lightweight The profiled program gives little run-time overhead. The viewer is compact that targets to provide only necessary information without fancy visual effect. It gives profile result in widespread PNG and XML format.
  • Message-embedded profile Custom information can be left within profile elements. It then also provides the ability to help reveal internal state/decision inside the program.

P.S. The user-provided semantic specifications (via the profile library) is necessary for semantic profile

System Requirement

python3 (viewer)
g++ (c/cpp profile library)

Dependent Library

dot (graphviz)

Use semile

profiler/cpp_library/src => check to see how to use cpp profile library
profiler/cpp_library/example => check to see an example using cpp profile library
profiler/c_interface/src => check to see how to use c profile interface
profiler/c_interface/example => check to see an example using c profile interface
viewer/README => check to see how to use semile viewer

Contact

Please contact Rodney Kan by [email protected] for any question/request/bug without hesitation.


Find screenshots, tutorials, and more information at http://r-kan.github.io/semile/!