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):

CaseTime
Application start without inspectIT agent19s:792ms
Application start with inspectIT agent30s:709ms
Application restart with inspectIT agent and existing cache

20s:615ms