[英]How to get the exact response time of http request when using Java multi-threads
我正在构建一个程序,该程序试图模拟真实的客户请求以衡量服务的“质量”。 我正在尝试衡量可接受的最大客户数量。 换句话说,我的网络服务器可以同时服务多少个客户端。 我使用每个请求的响应时间和重载次数来衡量“质量”。 然后,我有1万个线程在同时执行,但只是在随机时间内执行请求(以避免同时发送所有这些请求并导致拒绝服务)。
我的问题是如何在不受切换线程影响的情况下获得响应时间? 到目前为止,我发现获得响应时间的唯一方法是:
long starTime = System.nanoTime();
InputStream inputStream = this.conn.getInputStream();
long endTime = System.nanoTime();
double elapsedTime = TimeUnit.NANOSECONDS.toMillis((endTime - starTime))/1000.0;
其中this.conn
对象是HttpURLConnection。
问题在于,在获取inputStream之后可以立即切换线程,并且endTime将不准确。 如果线程更多,可能会变得更糟。
如何获得不受线程切换影响的确切时间?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.