如何查找 java 非阻塞方法的执行时间



我想获取非阻塞方法的执行时间。通常可以用System.CurrentTimeMills()来完成,我可以在这里使用该方法吗?我想知道一种获取非阻塞方法指标的方法。能行吗?

是的,您也可以在非阻塞调用上执行相同的操作。但是你把测量代码放在哪里可能会有所不同。一些方法是,

  • 如果您使用的是类似 CompleteableFuture ,则可以在特定then逻辑中添加测量检查。
  • 如果你在回调,你可以包装回调并进行计算(更多信息在 https://www.ysofters.com/2016/03/18/measuring-execution-time-of-asynchronous-calls/(

没有"非阻塞方法"这样的东西。此术语有时用于不使用阻塞 IO 的方法,有时用于启动某些将在未来完成的工作的方法。

您可能是指后者 - 并且没有通用的方法来测量他们的时间,因为这实际上取决于该方法在做什么。在某些特定情况下(例如当方法返回Future时(,这可能很简单。在某些特定情况下(该方法向外部系统发送消息( - 这可能是不可能的。

最新更新