Profile Datameer With YourKit

What is Profiling?

Profiling is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization.

Profiling Datameer X with YourKit

YourKit software are intelligent tools for profiling Java & .NET applications. The agent for these tools come packaged with Datameer X These tools can be very beneficial when working with the Datameer X customer services support to diagnose and resolve problems.

How to Start YourKit Profiling Datameer

Datameer recommends that you only use the YourKit profiler when directed by the customer support team. Using it can add additional stress against your system.

Choose between the following profiling options:

CPU profiling:

  • sampling -When sampling is used, the profiler periodically queries stacks of running threads to estimate the slowest parts of the code. No method invocation counts are available, only CPU time. Sampling is typically the best option when your goal is to locate and discover performance bottlenecks. With sampling, the profiler adds virtually no overhead to the profiled application. (Recommended)
  • tracingWhen tracing is used, the profiler instruments the bytecode of the profiled application for recording thread CPU time spent inside each profiled method. Both times and invocation counts are available. Although tracing provides more information, it has its drawbacks. First, it might noticeably slow down the profiled application, because the profiler executes special code on each enter to and exit from the methods being profiled. The greater the number of method invocations in the profiled application, the lower its speed when tracing is turned on. The second drawback is that, since this mode affects the execution speed of the profiled application, the CPU times recorded in this mode might be less adequate than times recorded with sampling. Please use this mode only if you really need method invocation counts.

CPU with memory profiling:

  • memory - When memory is used, CPU profiling (sampling) is performed and a snapshot is also created that represents the memory state of the profiled application at the moment it was captured. It contains information about all loaded classes, about all existing objects, and about references between objects.

Run the conductor with a profiling option attached.

The example below start Datameer X and activate profiling to measure in sampling mode.

bin/conductor.sh start --profile-sampling

Profiling Data

A folder containing a file with the profiling data is created after the conductor has been stopped.

This folder is labeled Snapshots and located in the user's home directory. Inside this folder is the profiling data that is helpful for Datameer's support team.