commit | db54c65d094fe2efda6500569b11238f78f15e97 | [log] [tgz] |
---|---|---|
author | Gong Dewei <kylixs@qq.com> | Fri Nov 03 09:45:28 2023 +0800 |
committer | GitHub <noreply@github.com> | Fri Nov 03 09:45:28 2023 +0800 |
tree | cd9e30375502244177b3bc3c19334286581c24b1 | |
parent | 27214388200183c0a27ca57eb7041aa9d4aff921 [diff] |
Optimize bytebuddy type description performance (#637) ### Improve the performance of type description of byte-buddy The goal is to get the original class description at re-transform, so as to generate consistent results when the Skywalking agent is enhanced again (including implementing the EnhancedInstance interface, auxiliary fields and methods, etc.) The previous type description used the `AgentBuilder.DescriptionStrategy.Default.POOL_FIRST` policy to get origin type description, which slows down the application startup, due to heavy I/O operations and parsing bytecode. New way is to remove dynamic fields, methods and interfaces generated by SkyWalking Agent from `TypeDescription`, and **make it as origin type descripton**. **Key feature** : * No need to cache `TypeDescription` objects, less memory used. * It only applies to the re-transform class processing flow and does not affect the startup process. **Process flow:** 1. Find `TypeDescription` from commonly used type cache, such as primitive class. 2. Delegate to `AgentBuilder.DescriptionStrategy.Default.HYBRID` 3. Wrap `TypeDescription` by `SWTypeDescriptionWrapper` , remove fields, methods, interface generated by SkyWalking. **Relative Issue:** https://github.com/apache/skywalking/issues/11460
SkyWalking-Java: The Java Agent for Apache SkyWalking, which provides the native tracing/metrics/logging abilities for Java projects.
SkyWalking: an APM(application performance monitor) system, especially designed for microservices, cloud native and container-based (Docker and Kubernetes) architectures.
Please head to the releases page to download a release of Apache SkyWalking.
This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please follow the REPORTING GUIDELINES to report unacceptable behavior.
Find the demo and screenshots on our website.
dev-subscribe@skywalking.apache.org
, follow the reply to subscribe the mail list.Request to join SkyWalking slack
mail to the mail list(dev@skywalking.apache.org
), we will invite you in.[CN] Request to join SkyWalking slack
mail to the mail list(dev@skywalking.apache.org
), we will invite you in.