【发布时间】:2023-03-19 15:21:01
【问题描述】:
我希望能够查看 sql 数据库响应我的应用程序中的 get 方法需要多长时间。目前,我在方法运行前后使用 System.currentTimeMillis() 来测量:
public long responseTime(long start, long end) {
long elapsed = end - start;
return elapsed;
};
@GET
public getAllProfiles() {
long start = System.currentTimeMillis();
profileDAO.getAllProfiles();
long end = System.currentTimeMillis();
long elapsed = responseTime(start, end);
return elapsed;
}
我担心的是,我正在测量我的方法运行需要多长时间,而不是服务器响应该方法需要多长时间。有没有更好的方法来做到这一点?
【问题讨论】:
-
你看过间谍/调试驱动程序吗?例如media.datadirect.com/download/docs/connectsqlxml/jdbcug/spy.htm。警告 - 我已经很久没有使用这些了,不确定它们是否只是用于调试语句还是会给你时间。
-
你可以使用 dynatrace,但我猜它是付费的。
-
你从哪里收到服务器的结果?它是一个被改变的值,还是一个在服务器返回值时被调用的函数?
-
如果您使用 Dropwizard,如标签所示,那么它已经具备您所需要的:dropwizard.io/1.3.1/docs/…
-
代码无法编译。
getAllProfiles()上缺少返回类型。 --- 您需要通过 REST 端点获取响应时间还是日志条目就足够了?如果是这样,我建议在profileDAO.getAllProfiles()内进行基准测试并将时间写入日志。
标签: java dropwizard response-time