Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Martini Framework Design Overview"

Line 13: Line 13:
 
== Martini Profiling Events Design Keypoints ==
 
== Martini Profiling Events Design Keypoints ==
  
=== Unified Events Handling Interface ===
+
=== Unified Events Handling Interface ===
  
Observer pattern is used for this unified design. Martini implements a events notification system by separating events subjects and observers. Besides VM events, it also merges external control module events into framework.
+
Observer pattern is used for this unified design. Martini implements a events notification system by separating events subjects and observers. Besides VM events, it also merges external control module events into framework.
 +
 
 +
Please refer the relation of main classes to [https://bugs.eclipse.org/bugs/attachment.cgi?id=152687 here].
  
 
=== Bytecode Instrumentation ===
 
=== Bytecode Instrumentation ===
  
 
 
 
 

Revision as of 06:00, 20 November 2009

Introduction

Martini framework is designed to cover different runtime environments Java VM and .NET CLR initially. Actually it mainly used for JVMTI on Java VM now. It also provides framework users an unified interface for different profilers based on MPI(Martini Profiling Interface).

There are five basic components in Martini internally. They are:

  • MartiniOSA: This component is used to abstract common OS functions. Such as I/O and threads related functions are included.
  • JPIBootLoader & LibraryLoader: They will load different components dynamically.
  • JPI: Java Profiling function..
  • JIE: Java instrumentation function.
  • Instrumentation Adaptor: Instrumentation adaptors for call graph profiling (CGAdaptor), heap profiling (HeapAdaptor) and thread profiling (ThreadAdaptor).

Martini Profiling Events Design Keypoints

Unified Events Handling Interface

Observer pattern is used for this unified design. Martini implements a events notification system by separating events subjects and observers. Besides VM events, it also merges external control module events into framework.

Please refer the relation of main classes to here.

Bytecode Instrumentation

 

Back to the top