gpt4 book ai didi

java - 如何计算 JAX-WS 中的请求处理时间?

转载 作者:太空宇宙 更新时间:2023-11-04 08:46:37 24 4
gpt4 key购买 nike

我正在开发 RESTful Web 服务,我想将请求时间处理放入所有请求的 xml 响应中。

我使用 Netbeans 6.9.1 和 GlassFish 版本 3。

如何测量?

谢谢。

最佳答案

这是一个坏主意,原因有两个:

  1. 该时间信息是多余的。没有什么可以阻止消费者在调用您的网络服务之前启动计时器,然后在收到响应时停止计时器。
  2. 如果您尝试自动化测试,您最终将不得不忽略该计时信息,因为您无法预测该值。由于响应是不确定的,因此测试 Web 服务变得更加困难。

现在,您关心性能是件好事,但我不会将这些指标返回给用户,而是将这些幕后记录记录在您的系统日志中,您可以随时查看这些日志。有很多方法可以做到这一点,但这里有 2 种常见模式。

  1. 使用 Apache Commons 记录器,然后在代码的入口点执行 long start = System.currentTimeMillis(),在代码的导出点再次调用 System.currentTimeMillis(),计算差异,然后将 log.info() 输出。
  2. 更简洁但更难设置的选项是使用 Spring Framework 的 Aspect PerformanceMonitorInterceptor

这是我从 Spring 应用程序上下文文件复制的一个工作示例。

<bean id="springPerformanceMonitorAspectInterceptor" class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor">
<property name="loggerName" value="com.myProject.performanceMonitor" />
</bean>
<aop:config>
<aop:pointcut id="springMonitoringPointcut" expression="execution(* com.myProject..*(..))" />
<aop:advisor pointcut-ref="springMonitoringPointcut" advice-ref="springPerformanceMonitorAspectInterceptor" />
</aop:config>

关于java - 如何计算 JAX-WS 中的请求处理时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4172260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com