JBoss Profiler 2
jesper.pedersen Aug 9, 2007 2:59 AMJBoss Profiler 2 will be a 100% Java based profiler capable of profiling Java Enterprise 5 applications.
The profiler will use the java.lang.instrument API to hook into method invocations of the classes selected in the configuration.
Overview:
* 100% Pure Java
x Memory storage for snapshots
x File storage for snapshots
* Integration with JBoss Enterprise Middleware Suite (JEMS)
x Ability to change configuration at run-time
* Access through multiple protocols using JBoss Remoting
x Socket
x RMI
x HTTP
* Reports
x Overview
x Classes
x Hotspots
x PerThread
x PerClass
* Able to specify method visibility
x Global
x Package
x Class
* Component identification
x Plain Old Java Object (POJO)
x java.lang.Throwable
x Enterprise JavaBean: Entity
x Enterprise JavaBean: Session
x Enterprise JavaBean: Message
x Servlet
x Servlet filter
x JavaServer Pages
x JMX MBean
x JavaServer Faces Converter
x JavaServer Faces Managed Bean
x RMI: Remote
x RMI: Server
x CORBA: Object
x CORBA: Servant
x Other: Using component identification plugins
* Client
x Command line
x Seam web client
x Administration console
The profiler is split into the following components:
* Agent : Collects the profiling information
* Shared: Shared classes between the agent and clients
* Connectors: Classes needed for communication
* AS: Classes needed for AS integration
* Client: Client implementations
The API between client and agent:
* startProfiler: Start the profiler
* stopProfiler: Stop the profiler
* snapshot: Take a snapshot
* getSnapshot: Get a snapshot
* listSnapshots: List snapshots
* clearSnapshots: Clear snapshots
* gc: Trigger garbage collection
* enable: Enable the profiler
* disable: Disable the profiler
* load: Load a snapshot
* save: Save a snapshot
Additional client functionality:
* Snapshot difference
* Call-stack analyzer
The profiler targets JBoss Application Server 4.2 and 5.0, since it requires a Java 5 run-time environment. The profiler must also be able to profile standalone applications or frameworks.
A Proof-of-Concept has been implemented along these lines.