Sent classes cache
To decrease the amount of calls to the server during class loading, the agent will keep information about all the classes already sent to the server. This information will be used on every successive agent restart, so the agent will not send any class that is already sent, except in case when the byte-code of the class has changed.
Cache file
The sent classes cache information is persisted on the disk under the file relative to the inspectit-agent.jar.
[PATH_TO_AGENT_FOLDER]/cache/[NAME_OF_THE_AGENT]/sendingClasses.cache
In most cases the cache file should not be touched. Agent will automatically handle the updates to this file and necessary deletions.
Performance impacts
Sent class cache enables a enormous performance boost in cases when application using inspectIT agent is restarted. If there was not changes to the application, the class cache will help the agent in not sending any of the already sent classes. In such cases the overhead introduced by inspectIT during application start will by decrease to the minimum, as it's expected that no class is parsed/sent to the CMR and that only necessary overhead is going to be insertion of already known instrumentation points.
Here are the example start-up times for the application DVD Store running on JBoss 5.1 / Java 6 (note that times will differ from application to application depending on the number of loaded classes and instrumentation points defined in the configuration):
Case | Time |
---|---|
Application start without inspectIT agent | 19s:792ms |
Application start with inspectIT agent | 30s:709ms |
Application restart with inspectIT agent and existing cache | 20s:615ms |