【问题标题】:Java: Network Statistics of running Java App from inside App itselfJava:从应用程序内部运行 Java 应用程序的网络统计信息
【发布时间】:2017-10-22 03:53:15
【问题描述】:

有没有办法从 java 程序本身监控网络流量(传输的字节数、数据包计数)?

我想对第三方应用程序 (IBM Domino DIIOP) 进行基准测试。无法将自定义网络套接字等传递给库。基准应用程序在 Windows/Linux 上运行。现在我正在使用 Wireshark 进行监控,但它既复杂又耗时。 Wireshark 会对网络性能产生负面影响,因此它不是基准测试的完美选择。

是否有适用于 Windows 和/或 Linux 的纯 Java 解决方案?

【问题讨论】:

    标签: java networking benchmarking


    【解决方案1】:

    有没有办法从 java 程序内部监控网络流量?

    有几种方法:

    1. 您可以监控套接字。请参考以下article。互联网上还有许多图书馆。
    2. 您可以通过 AspectJ 使用运行时编织来拦截 AOP 调用并计算统计信息。

    您仍然应该记住,并非所有统计信息都可以从应用程序中收集。网络通信被委托给操作系统,应用程序通常不知道传输细节。

    传输的字节数

    您可以计算应用读取和写入的字节数,但不能计算通过网络传输的实际字节数。

    包数

    应用程序不提供数据包计数,因为网络协议驱动程序负责形成和传递数据包。

    【讨论】:

      猜你喜欢
      • 2011-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-19
      • 2014-09-23
      相关资源
      最近更新 更多