外部JAR中对象的Java性能度量
我想测量外部jar的特定方法的性能(主要是执行时间)。为此,我已经读了一些其他的帖子,但所有的建议都不适合我
基本上提出了以下建议:
- Java代理不适合我,因为我无法控制
对象创建和方法调用。对象是
在我们的应用程序之外创建并从
那里我们只是使用创建的对象并设置一些
允许在某些时间调用对象的配置参数
时间由框架决定李>
- 构建时的AOP(例如AspectJ):我们正在使用的类已经部署在服务器上,不会由我们构建李>
- 运行时的AOP(例如AspectJ):据我所知,这需要客户不允许的服务器配置李>
- 类的反编译和手动增强:客户也不允许,而且很可能是非法的李>
我基本上是在寻找一种解决方案,允许我将侦听器附加到特定对象上的特定方法调用。这样,我们就可以测量性能,甚至可以记录一些上下文信息(例如当前登录的用户)
在一个完美的世界中,这可能看起来是这样的,只要监视对象存在,就只监视它:
EpicMonitoring.monitor(objectToBeMonitored, "methodToBeMonitored", new AbstractMonitorListener(){
public void onPreMethodInvocation(Object[] args)[
// Start time measurement
};
public void onPostMethodInvocation()[
// Stop time measurement
};
});
当我的想法用尽时,我希望你们中的一些人能帮我找到一些关于这个的想法:)
共 (0) 个答案