-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Remove unneeded async-profiler functionality (1/n)
- Loading branch information
Showing
79 changed files
with
221 additions
and
4,548 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,328 +1,2 @@ | ||
# Changelog | ||
|
||
## [2.8.3] - 2022-07-16 | ||
|
||
### Improvements | ||
- Support virtualized ARM64 macOS | ||
- A switch to generate auxiliary events by async-profiler or FlightRecorder in jfrsync mode | ||
|
||
### Bug fixes | ||
- Could not recreate perf_events after the first failure | ||
- Handle different versions of Zing properly | ||
- Do not call System.loadLibrary, when libasyncProfiler is preloaded | ||
|
||
## [2.8.2] - 2022-07-13 | ||
|
||
### Bug fixes | ||
- The same .so works with glibc and musl | ||
- dlopen hook did not work on Arch Linux | ||
- Fixed JDK 7 crash | ||
- Fixed CPU profiling on Zing | ||
|
||
### Changes | ||
- Mark interpreted frames with `_[0]` in collapsed output | ||
- Double click selects a method name on a flame graph | ||
|
||
## [2.8.1] - 2022-06-10 | ||
|
||
### Improvements | ||
- JFR to pprof converter (contributed by @NeQuissimus) | ||
- JFR converter improvements: time range, collapsed output, pattern highlighting | ||
- `%n` pattern in file names; limit number of output files | ||
- `--lib` to customize profiler library path in a container | ||
- `profiler.sh list` command now works without PID | ||
|
||
### Bug fixes | ||
- Fixed crashes related to continuous profiling | ||
- Fixed Alpine/musl compatibility issues | ||
- Fixed incomplete collapsed output due to weird locale settings | ||
- Workaround for JDK-8185348 | ||
|
||
## [2.8] - 2022-05-09 | ||
|
||
### Features | ||
- Mark top methods as interpreted, compiled (C1/C2), or inlined | ||
- JVM TI based allocation profiling for JDK 11+ | ||
- Embedded HTTP management server | ||
|
||
### Improvements | ||
- Re-implemented stack recovery for better reliability | ||
- Add `loglevel` argument | ||
- Do not mmap perf page in `--all-user` mode | ||
- Distinguish runnable/sleeping threads in OpenJ9 wall-clock profiler | ||
- `--cpu` converter option to extract CPU profile from the wall-clock output | ||
|
||
## [2.7] - 2022-02-14 | ||
|
||
### Features | ||
- Experimental support for OpenJ9 VM | ||
- DWARF stack unwinding | ||
|
||
### Improvements | ||
- Better handling of VM threads (fixed missing JIT threads) | ||
- More reliable recovery from `not_walkable` AGCT failures | ||
- Do not accept unknown agent arguments | ||
|
||
## [2.6] - 2022-01-09 | ||
|
||
### Features | ||
- Continuous profiling; `loop` and `timeout` options | ||
|
||
### Improvements | ||
- Reliability improvements: avoid certain crashes and deadlocks | ||
- Smaller and faster agent library | ||
- Minor `jfr` and `jfrsync` enhancements (see the commit log) | ||
|
||
## [2.5.1] - 2021-12-05 | ||
|
||
### Bug fixes | ||
- Prevent early unloading of libasyncProfiler.so | ||
- Read kernel symbols only for perf_events | ||
- Escape backslashes in flame graphs | ||
- Avoid duplicate categories in `jfrsync` mode | ||
- Fixed stack overflow in RedefineClasses | ||
- Fixed deadlock when flushing JFR | ||
|
||
### Improvements | ||
- Support OpenJDK C++ Interpreter (aka Zero) | ||
- Allow reading incomplete JFR recordings | ||
|
||
## [2.5] - 2021-10-01 | ||
|
||
### Features | ||
- macOS/ARM64 (aka Apple M1) port | ||
- PPC64LE port (contributed by @ghaug) | ||
- Profile low-privileged processes with perf_events (contributed by @Jongy) | ||
- Raw PMU events; kprobes & uprobes | ||
- Dump results in the middle of profiling session | ||
- Chunked JFR; support JFR files larger than 2 GB | ||
- Integrate async-profiler events with JDK Flight Recordings | ||
|
||
### Improvements | ||
- Use RDTSC for JFR timestamps when possible | ||
- Show line numbers and bci in Flame Graphs | ||
- jfr2flame can produce Allocation and Lock flame graphs | ||
- Flame Graph title depends on the event and `--total` | ||
- Include profiler logs and native library list in JFR output | ||
- Lock profiling no longer requires JVM symbols | ||
- Better container support | ||
- Native function profiler can count the specified argument | ||
- An option to group threads by scheduling policy | ||
- An option to prepend library name to native symbols | ||
|
||
### Notes | ||
- macOS build is provided as a fat binary that works both on x86-64 and ARM64 | ||
- 32-bit binaries are no longer shipped. It is still possible to build them from sources | ||
- Dropped JDK 6 support (may still work though) | ||
|
||
## [2.0] - 2021-03-14 | ||
|
||
### Features | ||
- Profile multiple events together (cpu + alloc + lock) | ||
- HTML 5 Flame Graphs: faster rendering, smaller size | ||
- JFR v2 output format, compatible with FlightRecorder API | ||
- JFR to Flame Graph converter | ||
- Automatically turn profiling on/off at `--begin`/`--end` functions | ||
- Time-to-safepoint profiling: `--ttsp` | ||
|
||
### Improvements | ||
- Unlimited frame buffer. Removed `-b` option and 64K stack traces limit | ||
- Additional JFR events: OS, CPU, and JVM information; CPU load | ||
- Record bytecode indices / line numbers | ||
- Native stack traces for Java events | ||
- Improved CLI experience | ||
- Better error handling; an option to log warnings/errors to a dedicated stream | ||
- Reduced the amount of unknown stack traces | ||
|
||
### Changes | ||
- Removed non-ASL code. No more CDDL license | ||
|
||
## [1.8.4] - 2021-02-24 | ||
|
||
### Improvements | ||
- Smaller and faster agent library | ||
|
||
### Bug fixes | ||
- Fixed JDK 7 crash during wall-clock profiling | ||
|
||
## [1.8.3] - 2021-01-06 | ||
|
||
### Improvements | ||
- libasyncProfiler.dylib symlink on macOS | ||
|
||
### Bug fixes | ||
- Fixed possible deadlock on non-HotSpot JVMs | ||
- Gracefully stop profiler when terminating JVM | ||
- Fixed GetStackTrace problem after RedefineClasses | ||
|
||
## [1.8.2] - 2020-11-02 | ||
|
||
### Improvements | ||
- AArch64 build is now provided out of the box | ||
- Compatibility with JDK 15 and JDK 16 | ||
|
||
### Bug fixes | ||
- More careful native stack walking in wall-clock mode | ||
- `resume` command is not compatible with JFR format | ||
- Wrong allocation sizes on JDK 8u262 | ||
|
||
## [1.8.1] - 2020-09-05 | ||
|
||
### Improvements | ||
- Possibility to specify application name instead of `pid` (contributed by @yuzawa-san) | ||
|
||
### Bug fixes | ||
- Fixed long attach time and slow class loading on JDK 8 | ||
- `UnsatisfiedLinkError` during Java method profiling | ||
- Avoid reading `/proc/kallsyms` when `--all-user` is specified | ||
|
||
## [1.8] - 2020-08-10 | ||
|
||
### Features | ||
- Converters between different output formats: | ||
- JFR -> nflx (FlameScope) | ||
- Collapsed stacks -> HTML 5 Flame Graph | ||
|
||
### Improvements | ||
- `profiler.sh` no longer requires bash (contributed by @cfstras) | ||
- Fixed long attach time and slow class loading on JDK 8 | ||
- Fixed deadlocks in wall-clock profiling mode | ||
- Per-thread reverse Flame Graph and Call Tree | ||
- ARM build now works with ARM and THUMB flavors of JDK | ||
|
||
### Changes | ||
- Release package is extracted into a separate folder | ||
|
||
## [1.7.1] - 2020-05-14 | ||
|
||
### Features | ||
- LBR call stack support (available since Haswell) | ||
|
||
### Improvements | ||
- `--filter` to profile only specified thread IDs in wall-clock mode | ||
- `--safe-mode` to disable selected stack recovery techniques | ||
|
||
## [1.7] - 2020-03-17 | ||
|
||
### Features | ||
- Profile invocations of arbitrary Java methods | ||
- Filter stack traces by the given name pattern | ||
- Java API to filter monitored threads | ||
- `--cstack`/`--no-cstack` option | ||
|
||
### Improvements | ||
- Thread names and Java thread IDs in JFR output | ||
- Wall clock profiler distinguishes RUNNABLE vs. SLEEPING threads | ||
- Stable profiling interval in wall clock mode | ||
- C++ function names as events, e.g. `-e VMThread::execute` | ||
- `check` command to test event availability | ||
- Allow shading of AsyncProfiler API | ||
- Enable CPU profiling on WSL | ||
- Enable allocation profiling on Zing | ||
- Reduce the amount of `unknown_Java` samples | ||
|
||
## [1.6] - 2019-09-09 | ||
|
||
### Features | ||
- Pause/resume profiling | ||
- Allocation profiling support for JDK 12, 13 (contributed by @rraptorr) | ||
|
||
### Improvements | ||
- Include all AsyncGetCallTrace failures in the profile | ||
- Parse symbols of JNI libraries loaded in runtime | ||
- The agent autodetects output format by the file extension | ||
- Output file name patterns: `%p` and `%t` | ||
- `-g` option to print method signatures | ||
- `-j` can increase the maximum Java stack depth | ||
- Allocaton sampling rate can be adjusted with `-i` | ||
- Improved reliability on macOS | ||
|
||
### Changes | ||
- `-f` file names are now relative to the current shell directory | ||
|
||
## [1.5] - 2019-01-08 | ||
|
||
### Features | ||
- Wall-clock profiler: `-e wall` | ||
- `-e itimer` mode for systems that do not support perf_events | ||
- Native stack traces on macOS | ||
- Support for Zing runtime, except allocation profiling | ||
|
||
### Improvements | ||
- `--all-user` option to allow profiling with restricted | ||
`perf_event_paranoid` (contributed by @jpbempel) | ||
- `-a` option to annotate method names | ||
- Improved attach to containerized and chroot'ed JVMs | ||
- Native function profiling now accepts non-public symbols | ||
- Better mapping of Java thread names (contributed by @KirillTim) | ||
|
||
### Changes | ||
- Changed default profiling engine on macOS | ||
- Fixed the order of stack frames in JFR format | ||
|
||
## [1.4] - 2018-06-24 | ||
|
||
### Features | ||
- Interactive Call tree and Backtrace tree in HTML format (contributed by @rpulle) | ||
- Experimental support for Java Flight Recorder (JFR) compatible output | ||
|
||
### Improvements | ||
- Added units: `ms`, `us`, `s` and multipliers: `K`, `M`, `G` for interval argument | ||
- API and command-line option `-v` for profiler version | ||
- Allow profiling containerized JVMs on older kernels | ||
|
||
### Changes | ||
- Default CPU sampling interval reduced to 10 ms | ||
- Changed the text format of flat profile | ||
|
||
## [1.3] - 2018-05-13 | ||
|
||
### Features | ||
- Profiling of native functions, e.g. malloc | ||
|
||
### Improvements | ||
- JDK 9, 10, 11 support for heap profiling with accurate stack traces | ||
- `root` can now profile Java processes of any user | ||
- `-j` option for limiting Java stack depth | ||
|
||
## [1.2] - 2018-03-05 | ||
|
||
### Features | ||
- Produce SVG files out of the box; flamegraph.pl is no longer needed | ||
- Profile ReentrantLock contention | ||
- Java API | ||
|
||
### Improvements | ||
- Allocation and Lock profiler now works on JDK 7, too | ||
- Faster dumping of results | ||
|
||
### Changes | ||
- `total` counter of allocation profiler now measures heap pressure (like JMC) | ||
|
||
## [1.1] - 2017-12-03 | ||
|
||
### Features | ||
- Linux Perf Events profiling: CPU cycles, cache misses, branch misses, page faults, context switches etc. | ||
- Kernel tracepoints support | ||
- Contended monitor (aka intrinsic lock) profiling | ||
- Individual thread profiles | ||
|
||
### Improvements | ||
- Profiler can engage at JVM start and automatically dump results on exit | ||
- `list` command-line option to list supported events | ||
- Automatically find target process ID with `jps` tool | ||
- An option to include counter value in `collapsed` output | ||
- Friendly class names in allocation profile | ||
- Split allocations in new TLAB vs. outside TLAB | ||
|
||
### Changes | ||
- Replaced `-m` modes with `-e` events | ||
- Interval changed from `int` to `long` | ||
|
||
## [1.0] - 2017-10-09 | ||
|
||
### Features | ||
- CPU profiler without Safepoint bias | ||
- Lightweight Allocation profiler | ||
- Java, native and kernel stack traces | ||
- FlameGraph compatible output | ||
!TODO! |
Oops, something went wrong.