有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

外部JAR中对象的Java性能度量

我想测量外部jar的特定方法的性能(主要是执行时间)。为此,我已经读了一些其他的帖子,但所有的建议都不适合我

基本上提出了以下建议:

  1. Java代理不适合我,因为我无法控制 对象创建和方法调用。对象是 在我们的应用程序之外创建并从 那里我们只是使用创建的对象并设置一些 允许在某些时间调用对象的配置参数 时间由框架决定
  2. 构建时的AOP(例如AspectJ):我们正在使用的类已经部署在服务器上,不会由我们构建
  3. 运行时的AOP(例如AspectJ):据我所知,这需要客户不允许的服务器配置
  4. 类的反编译和手动增强:客户也不允许,而且很可能是非法的

我基本上是在寻找一种解决方案,允许我将侦听器附加到特定对象上的特定方法调用。这样,我们就可以测量性能,甚至可以记录一些上下文信息(例如当前登录的用户)

在一个完美的世界中,这可能看起来是这样的,只要监视对象存在,就只监视它:

EpicMonitoring.monitor(objectToBeMonitored, "methodToBeMonitored", new AbstractMonitorListener(){
    public void onPreMethodInvocation(Object[] args)[
        // Start time measurement
    };

    public void onPostMethodInvocation()[
        // Stop time measurement
    };
});

当我的想法用尽时,我希望你们中的一些人能帮我找到一些关于这个的想法:)


共 (0) 个答案