Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 87048 Details for
Bug 200251
[enh] Add support for "application" mode in the Java 1.5+ (JVMTI) Profiler
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
Feature Description
fd_200251.2.html (text/html), 5.43 KB, created by
Igor Alelekov
on 2008-01-16 09:28:35 EST
(
hide
)
Description:
Feature Description
Filename:
MIME Type:
Creator:
Igor Alelekov
Created:
2008-01-16 09:28:35 EST
Size:
5.43 KB
patch
obsolete
><html> ><head> ><meta http-equiv=Content-Type content="text/html; charset=windows-1251"> ><title>"Application" mode support</title> ></head> > ><body> > ><h1>TPTP feature: 200251</h1> > ><table> > <tr> > <td>Author:</td> > <td>Igor Alelekov</td> > </tr> > <tr> > <td>email:</td> > <td><a href="mailto:igor.alelekov@intel.com">igor.alelekov@intel.com</a></td> > </tr> > <tr> > <td>Last updated:</td> > <td>01/10/2008</td> > </tr> ></table> > ><br> ><font color="red">Rough workload estimate in person weeks:</font> ><br/> ><table border="1"> > <tbody> > <tr> > <th>Process</th> > <th>Sizing</th> > <th>Names of people doing the work</th> > </tr> > <tr> > <td>Design</td> > <td>1 ww</td> > <td rowspan="3">Igor Alelekov</td> > </tr> > <tr> > <td>Code</td> > <td>2 ww</td> > </tr> > <tr> > <td>Test</td> > <td>1 ww</td> > </tr> > <tr> > <td>Documentation, including readme file,<br>built-in help message, online documentation</td> > <td>2 wd</td> > <td>TBD</td> > </tr> > <tr> > <td>Build and infrastructure</td> > <td>1 wd</td> > <td>TBD</td> > </tr> > <tr> > <td>Code review & other committer work <br/> > (e.g. check-in, contribution tracking) <br/> > if this is to be contributed by someone who <br/> > is not a committer in the component > </td> > <td>2 wd</td> > <td>N/A - will be done by committer</td> > </tr> > <tr> > <td><b><font color="red">Total</font></b></td> > <td colspan="2"><font color="#FF0000"><b>5 ww</b></font></td> > </tr> > </tbody> ></table> ><br><br> ><h2>Requirement summary</h2> >Add support for "Application" mode in >the Java 1.5+ (JVMTI) Profiler. Based on: ><a href="http://bugs.eclipse.org/200251">200251</a>, ><a href="http://bugs.eclipse.org/203415">203415</a>, ><a href="http://dev.eclipse.org/newslists/news.eclipse.tptp/msg04823.html">http://dev.eclipse.org/newslists/news.eclipse.tptp/msg04823.html</a> > and also related to <a href="http://bugs.eclipse.org/142986">142986</a>. ><br><br> >This feature provides users with a fine grained control over the profiling process by allowing to >programmatically start and stop data collection. This >functionality existed in the JVMPI agent in the past and can be considered as resolving >a compatibility issue of PI and TI agent. ><br><br>Related documents:<br> ><a href="http://help.eclipse.org/help33/topic/org.eclipse.tptp.platform.doc.user/tasks/teprofsa.htm">http://help.eclipse.org/help33/topic/org.eclipse.tptp.platform.doc.user/tasks/teprofsa.htm</a>,<br> ><a href="http://archive.eclipse.org/tptp/4.2.0/javadoc/Platform/public/org/eclipse/hyades/collection/profiler/Profiler.html">http://archive.eclipse.org/tptp/4.2.0/javadoc/Platform/public/org/eclipse/hyades/collection/profiler/Profiler.html</a>. ><br> ><h2>Design summary</h2> >Class <code>org.eclipse.tptp.profiler.Profiler</code> exposes an API for controlling the profiler. > This class is a singleton and cannot be instantiated by the user. In order to access it > an application must use Profiler.getProfiler(). > <br><br> >The class implements the following methods: ><ul> ><li><i>public static Profiler getProfiler() throws ProfilerNotAvailableException</i> - returns the singleton Profiler<br><br></li> ><li><i>public boolean startProfiling() throws ProfilerNotAvailableException</i> - starts data collection<br><br></li> ><li><i>public boolean stopProfiling() throws ProfilerNotAvailableException</i> - stops data collection<br><br></li> ><li><i>public void runGC() throws ProfilerNotAvailableException</i> - runs the garbage collector<br><br></li> ><li><i>public void emitXMLFragment(String xmlFragment) throws ProfilerNotAvailableException</i> - saves the XML fragment to the output destination</li> ></ul> > >The API is available in all profiler operation modes (enabled, standalone and controlled). Example of the API usage is provided in the <b>Appendix</b>. ><br><br> >Processing of the APIs is turned-off by default and can be optionally turned-on > using the command line argument "<b>api=true</b>", as shown in the following >example: ><p> ><i>java -agentlib:JPIBootLoader=JPIAgent:server=enabled,<b>api=true</b>;CGProf ...</i> ><p> > >When the API feature is enabled, profiling will start with data collection paused. Data collection will start only when the <code>startProfiling()</code> API is called. >This enables users to to skip profiling of the application's start-up phase and start data collection only at a specific place in the code. ><br><br> >When the API feature is disabled (the default), profiling will start when the application starts and any embedded calls to the profiler will be ignored. ><br><br> ></p> ><p><H3>Appendix.</H3> >Example of the API usage. ><br><br><i> >..<br> >import org.eclipse.tptp.profiler.Profiler;<br> >..<br> > Profiler profiler = null;<br> > try {<br> > profiler = Profiler.getProfiler();<br> > } catch (ProfilerNotAvailableException e) {}<br> ><br> > methodA();<br> ><br> > if (profiler != null)<br> > try {<br> > profiler.startProfiling();<br> > } catch (ProfilerNotAvailableException e) {}<br> ><br> > methodB();<br> ><br> > if (profiler != null)<br> > try {<br> > profiler.stopProfiling();<br> > } catch (ProfilerNotAvailableException e) {}<br> ><br> > methodC();<br> >..<br> > ></i> ></p> ></body> ></html>
<html> <head> <meta http-equiv=Content-Type content="text/html; charset=windows-1251"> <title>"Application" mode support</title> </head> <body> <h1>TPTP feature: 200251</h1> <table> <tr> <td>Author:</td> <td>Igor Alelekov</td> </tr> <tr> <td>email:</td> <td><a href="mailto:igor.alelekov@intel.com">igor.alelekov@intel.com</a></td> </tr> <tr> <td>Last updated:</td> <td>01/10/2008</td> </tr> </table> <br> <font color="red">Rough workload estimate in person weeks:</font> <br/> <table border="1"> <tbody> <tr> <th>Process</th> <th>Sizing</th> <th>Names of people doing the work</th> </tr> <tr> <td>Design</td> <td>1 ww</td> <td rowspan="3">Igor Alelekov</td> </tr> <tr> <td>Code</td> <td>2 ww</td> </tr> <tr> <td>Test</td> <td>1 ww</td> </tr> <tr> <td>Documentation, including readme file,<br>built-in help message, online documentation</td> <td>2 wd</td> <td>TBD</td> </tr> <tr> <td>Build and infrastructure</td> <td>1 wd</td> <td>TBD</td> </tr> <tr> <td>Code review & other committer work <br/> (e.g. check-in, contribution tracking) <br/> if this is to be contributed by someone who <br/> is not a committer in the component </td> <td>2 wd</td> <td>N/A - will be done by committer</td> </tr> <tr> <td><b><font color="red">Total</font></b></td> <td colspan="2"><font color="#FF0000"><b>5 ww</b></font></td> </tr> </tbody> </table> <br><br> <h2>Requirement summary</h2> Add support for "Application" mode in the Java 1.5+ (JVMTI) Profiler. Based on: <a href="http://bugs.eclipse.org/200251">200251</a>, <a href="http://bugs.eclipse.org/203415">203415</a>, <a href="http://dev.eclipse.org/newslists/news.eclipse.tptp/msg04823.html">http://dev.eclipse.org/newslists/news.eclipse.tptp/msg04823.html</a> and also related to <a href="http://bugs.eclipse.org/142986">142986</a>. <br><br> This feature provides users with a fine grained control over the profiling process by allowing to programmatically start and stop data collection. This functionality existed in the JVMPI agent in the past and can be considered as resolving a compatibility issue of PI and TI agent. <br><br>Related documents:<br> <a href="http://help.eclipse.org/help33/topic/org.eclipse.tptp.platform.doc.user/tasks/teprofsa.htm">http://help.eclipse.org/help33/topic/org.eclipse.tptp.platform.doc.user/tasks/teprofsa.htm</a>,<br> <a href="http://archive.eclipse.org/tptp/4.2.0/javadoc/Platform/public/org/eclipse/hyades/collection/profiler/Profiler.html">http://archive.eclipse.org/tptp/4.2.0/javadoc/Platform/public/org/eclipse/hyades/collection/profiler/Profiler.html</a>. <br> <h2>Design summary</h2> Class <code>org.eclipse.tptp.profiler.Profiler</code> exposes an API for controlling the profiler. This class is a singleton and cannot be instantiated by the user. In order to access it an application must use Profiler.getProfiler(). <br><br> The class implements the following methods: <ul> <li><i>public static Profiler getProfiler() throws ProfilerNotAvailableException</i> - returns the singleton Profiler<br><br></li> <li><i>public boolean startProfiling() throws ProfilerNotAvailableException</i> - starts data collection<br><br></li> <li><i>public boolean stopProfiling() throws ProfilerNotAvailableException</i> - stops data collection<br><br></li> <li><i>public void runGC() throws ProfilerNotAvailableException</i> - runs the garbage collector<br><br></li> <li><i>public void emitXMLFragment(String xmlFragment) throws ProfilerNotAvailableException</i> - saves the XML fragment to the output destination</li> </ul> The API is available in all profiler operation modes (enabled, standalone and controlled). Example of the API usage is provided in the <b>Appendix</b>. <br><br> Processing of the APIs is turned-off by default and can be optionally turned-on using the command line argument "<b>api=true</b>", as shown in the following example: <p> <i>java -agentlib:JPIBootLoader=JPIAgent:server=enabled,<b>api=true</b>;CGProf ...</i> <p> When the API feature is enabled, profiling will start with data collection paused. Data collection will start only when the <code>startProfiling()</code> API is called. This enables users to to skip profiling of the application's start-up phase and start data collection only at a specific place in the code. <br><br> When the API feature is disabled (the default), profiling will start when the application starts and any embedded calls to the profiler will be ignored. <br><br> </p> <p><H3>Appendix.</H3> Example of the API usage. <br><br><i> ..<br> import org.eclipse.tptp.profiler.Profiler;<br> ..<br> Profiler profiler = null;<br> try {<br> profiler = Profiler.getProfiler();<br> } catch (ProfilerNotAvailableException e) {}<br> <br> methodA();<br> <br> if (profiler != null)<br> try {<br> profiler.startProfiling();<br> } catch (ProfilerNotAvailableException e) {}<br> <br> methodB();<br> <br> if (profiler != null)<br> try {<br> profiler.stopProfiling();<br> } catch (ProfilerNotAvailableException e) {}<br> <br> methodC();<br> ..<br> </i> </p> </body> </html>
View Attachment As Raw
Actions:
View
Attachments on
bug 200251
:
81060
| 87048 |
87410
|
89022
|
89110