• 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

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?

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.