Using JIT Profiling API
To include JIT Profiling support, do one of the following:
- Include the following files to your source tree:
- jitprofiling.h, located under<install-dir>\include(Windows*) or<install-dir>/include(Linux*)
- ittnotify_config.h,ittnotify_types.handjitprofiling.c, located under<install-dir>\sdk\src\ittnotify(Windows*) or<install-dir>/sdk/src/ittnotify(Linux*)
To locate your <install-dir> see Installation Directory. - Use the static library provided with the product:
- Includejitprofiling.hfile, located under the<install-dir>\include(Windows*) or<install-dir>/include(Linux*) directory, in your code. This header file provides all API function prototypes and type definitions.
- Link tojitprofiling.lib(Windows*) orjitprofiling.a(Linux*), located under<install-dir>\lib32or<install-dir>\lib64(Windows*) or<install-dir>/lib32or<install-dir>/lib32(Linux*).
Use This Primitive
| To Do This
|
---|---|
int
iJIT_NotifyEvent( iJIT_JVM_EVENT event_type, void *EventSpecificData ); | Use this API to send a notification of
event_type with the data pointed by
EventSpecificData to the agent. The reported information is used to attribute samples obtained from any
Intel® VTune™
collector.
Profiler |
unsigned int
iJIT_GetNewMethodID( void ); | Generate a new method ID. You must use this function to assign unique and valid method IDs to methods reported to the profiler.
This API returns a new unique method ID. When out of unique method IDs, this API function returns 0.
|
iJIT_IsProfilingActiveFlags
iJIT_IsProfilingActive( void ); | Returns the current mode of the profiler: off, or sampling, using the
iJIT_IsProfilingActiveFlags enumeration.
This API returns
iJIT_SAMPLING_ON by default, indicating that Sampling is running. It returns
iJIT_NOTHING_RUNNING if no profiler is running.
|
Lifetime of Allocated Data
You send an event notification to the agent (
VTune
) with event-specific data, which is a structure. The pointers in the structure refer to memory you allocated and you are responsible for releasing it. The pointers are used by the
Profiler
iJIT_NotifyEvent
method to copy your data in a trace file, and they are not used after the
iJIT_NotifyEvent
method returns.
JIT Profiling API Sample Application
VTune
is installed with a sample application in the
Profiler
jitprofiling_vtune_amp_xe.zip
(Windows*) or
jitprofiling_vtune_amp_xe.tgz
(Linux*) that emulates the creation and execution of dynamic code. In addition, it uses the JIT profiling API to notify the
VTune
when it transfers execution control to dynamic code.
Profiler
To install and set up the sample code:
- Copy thejitprofiling_vtune_amp_xe.zip(Windows*) orjitprofiling_vtune_amp_xe.tgz(Linux*) file from the<install-dir>\samples\<locale>\C++(Windows*) or<install-dir>/samples/<locale>/C++(Linux*)directory to a writable directory or share on your system.
- Extract the sample from the archive file.
Build jitprofiling.c in Microsoft Visual Studio*
- Copy thejitprofiling_vtune_amp_xe.zipfile from the<install-dir>\samples\<locale>\C++directory to a writable directory or share on your system.
- Extract the sample from the.zipfile.
- Open thejitprofiling.slnfile with Microsoft Visual Studio.
- Right-clickjitprofilingin theSolution Explorerand selectProperties. Thejitprofiling Property Pageswindow opens.
- Set thePlatform(top of the window) tox64.
- Selectand add the path to the headers () to<install-dir>/includeAdditional Include Directories.
- Selectand add the path to the library (or<install-dir>/lib32) to<install-dir>/lib64Additional Library Directories.
- ClickOKto apply the changes and close the window.
- Rebuild the solution with the new project settings.
Installation Information
Whether you downloaded
Intel® VTune™
as a standalone component or with the Intel® oneAPI Base Toolkit, the default path for your
Profiler
<install-dir>
is:
Operating System
| Path to <install-dir>
|
---|---|
Windows* OS
|
|
Linux* OS
|
|
macOS*
| /opt/intel/oneapi/ |
For OS-specific installation instructions, refer to the
VTune
Installation Guide.
Profiler