Java:测量特定代码段的网络带宽

时间:2016-01-21 09:32:17

标签: java sockets

我想在我的服务器上添加带宽测量值(​​用纯java编写)。我在考虑一个看起来像

的API
MeasureBandwidthSignletone.getInstance().startMeasuring();
......
.....//here I may connect to a db or using http (HttpUrlConnection)...
.....
MeasureBandwidthSignletone.getInstance().endMeasuring();

问题是我有许多不同类型的代码访问网络(jdbc,HttpUrlConnection,FTP等等)我想知道我是否可以某种方式将一个threadlocal监视器附加到套接字,这将让我知道如何上传或下载了很多字节。

我知道有一种方法是使用ASM / AspectJ来更改字节代码 - 但是有没有更简单的方法来插入java套接字API?

谢谢

1 个答案:

答案 0 :(得分:1)

  

如何设置定制的SocketFactoryImpl?那可以吗?

这也适用于特定版本的JVM。如果您知道要定位的是哪个版本,则可以创建此类的修改版本。

这对于通用JVM不起作用的原因是此类使用的内部API在版本之间可能不同,这就是字节代码注入更有可能适用于各种JVM的原因。