CDV ❯ Add Static Instrumentation Capability
-
New Feature
-
Status: Reopened
-
3 Minor
-
Resolution:
-
Build & Test
-
-
prodmgmt
-
Reporter: drb
-
November 30, 2006
-
0
-
Watchers: 1
-
March 19, 2010
-
Description
Because it’s adding an additional build step, it will be critical that it be as simple as possible to use. An idea would be to expose a simple post-processing compiler that scans all of the classfiles in a given directory or jarfile to find the ones that match DSO metadata (either from a config or from annotations embedded in the classfiles themselves). The tool would then simply munge the classfiles in place to add the necessary DSO instrumentation.
The tool could be exposed as a custom ant task that users would simply run after
For example:
<target …>
</target>
Reasons
* App startup time reduced since instrumentation doesn't have to happen at runtime
* Some amount of static error and consistency checking becomes possible, improved dev experience
* Simplified deployment: conceivably could allow us to eliminate bootjar/-Xbootclasspath requirement
Comments
Radim Tlusty 2007-03-30
Tim Eck 2007-03-30
unless this item was converted into another jira item, this has not been implemented and thus shouldn’t be resolved/fixed status. If this item is superceded by another, please link the items when closing
orion 2007-04-01
Radim, have you already tried to narrow the set of classes that are being instrumented:
This section of the documentation describes how to do it:
http://www.terracotta.org/confluence/display/docs1/Configuration+Guide+and+Reference#ConfigurationGuideandReference-%2Ftc%3Atcconfig%2Fapplication%2Fdso%2Finstrumentedclasses
Radim Tlusty 2007-04-06
We have performed test with our application with several configurations. The size of our projects is about 10.000 classes.
The results of startup of application were following: – plain Java without Terracotta - 28s – current minimum of instrumented classes: 47s (can be still optimized) – all classes instrumented: 88s
The current amount of instrumented classes is approximately 100.
I will try to use profiler to see, where is the biggest bottleneck.
This could be a very helpful feature. I meet in my project quit significant slowdown of application startup, because of big amount of classes. Where can I find the implementation of this issue?