Project

General

Profile

Feature #446

Improve process startup time with many events

Added by Mathieu Desnoyers over 7 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
Start date:
02/15/2013
Due date:
% Done:

0%

Estimated time:

Description

J9 VM instrumentation has 16k individual events. Latest UST changes improves the process startup time from about 180s down to 2-4s (depending if tracing is active or not). However, this is still far from the 200ms process startup time normally expected for J9 VM.

There are a couple of ways to improve things:

a) implement a pre-computed hash table and or radix tree within the probe provider. Given the tracepoint names within a provider are known statically, we could construct a data structure to access them efficiently after object compilation, generate C code to construct those structures, and generate an output object, which would be linked with the provider object to create the shared library. The hash table would fit for use-cases where events are enabled by name, and radix tree (or something similar) would be better suited for wildcards.

b) a simpler solution for the disabled tracing case might be to delay addition of tracepoints to the hash table until the moment this data structure is actually needed (lazy initialization).

Also available in: Atom PDF