All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.perfmark.package-info Maven / Gradle / Ivy

There is a newer version: 2.0.31
Show newest version
/*
 * Copyright 2019 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * PerfMark is a very low overhead tracing library, designed for in-process use. To use PerfMark,
 * see the docs on {@link io.perfmark.PerfMark}.
 *
 * 

The PerfMark project is split into several, cohesive pieces, that allow users to selectively * include what they need. For users that want to add the tracing hooks into their application, but * not include the full implementation, only the {@code io.perfmark} package is needed. For * consuming the data, the {@code io.perfmark.tracewriter} package can be used to write to the * Chrome Trace Event format. * *

PerfMark includes several runtime-only dependencies that can be included for fast recording. * The library will attempt to load these packages if they are found on the classpath, falling back * if they are unavailable. To work properly, a generator and a recorder are needed. * Generators tell PerfMark if it is enabled or not. Recorders tell PerfMark how to store the data, * if it is enabled. The stable implementations are: * *

    *
  • *
    io.perfmark.java9
    * - a wait-free recorder and low-overhead generator. The recorder in this package has the * lowest and most consistent amount of overhead. The generator in this package is not the * fastest, but has low overhead to enable / disable. *
  • *
    io.perfmark.java7
    * - a zero-overhead generator. The generator here is more efficient than the one in the *
    io.perfmark.java9
    * package, but has a high overhead to enable / disable it. *
  • *
    io.perfmark.java6
    * - a blocking recorder and medium-overhead generator. This package is included as a safe * fallback for when advanced VM features are unavailable, or when running on Android. *
* *

The overhead of tracing is very low in all implementations, and has been custom tailored for * no-allocation. See the documentation in README.md in the root directory for more info. * * @author Carl Mastrangelo * @see PerfMark.io * @see https://github.com/perfmark */ package io.perfmark;





© 2015 - 2025 Weber Informatics LLC | Privacy Policy