public class Tracer extends Object
| Constructor and Description |
|---|
Tracer() |
| Modifier and Type | Method and Description |
|---|---|
static Backend |
getBackend() |
protected static Backend |
getBackend(Resolver resolver)
返回Backend类路径上必须只有一个Tracer实现
对该方法的调用可能最初会阻塞以使用
ServiceLoader查找实现
从具有不同类加载器上下文的多个线程对该方法的调用最初可能很慢
因为高速缓存写入可能在并发情况下互相覆盖,并且某些类加载器上下文可能需要多次查找,允许查找机制完全避免同步
TODO:如果运行嵌套的类加载器环境(例如servlet容器),并且Tracee Api位于顶层
类加载器中,而Tracee实现位于子类加载器中,则子类加载器可能不会卸载*直到出现内存不足的情况(因为SoftReference将BackendProvider保留在内存中)
可以将SoftReference更改为WeakReference,但让TraceeBackend对它的TraceeBackendProvider保持强引用 |
public static Backend getBackend()
protected static Backend getBackend(Resolver resolver)
ServiceLoader查找实现
从具有不同类加载器上下文的多个线程对该方法的调用最初可能很慢
因为高速缓存写入可能在并发情况下互相覆盖,并且某些类加载器上下文可能需要多次查找,允许查找机制完全避免同步
TODO:如果运行嵌套的类加载器环境(例如servlet容器),并且Tracee Api位于顶层
类加载器中,而Tracee实现位于子类加载器中,则子类加载器可能不会卸载*直到出现内存不足的情况(因为SoftReference将BackendProvider保留在内存中)
可以将SoftReference更改为WeakReference,但让TraceeBackend对它的TraceeBackendProvider保持强引用resolver - 解析器Copyright © 2021. All rights reserved.