java - 如何从 Java 应用程序测量 MongoDB 查询执行时间
问题描述
我正在编写一个小实用程序来对数据库进行基准测试。有一个小片段显示了我如何执行查询。(我正在为 MongoDB 使用 java 驱动程序):
long startTime = System.currentTimeMillis();
MongoIterable<Document> execResult = peopleCollection.aggregate(Collections.singletonList(group));
MongoCursor<Document> cursor = execResult.cursor();
while(cursor.hasNext()) {
cursor.next();
}
long endTime = System.currentTimeMillis();
我想正确测量时间以便进行可靠的测试。当我删除while循环时,时间更短,但它只返回第一批结果。查询是否完全执行并且服务器分批返回结果,还是在获取下一批时再次执行?
在我看来,这两种方法都有点不可靠,我找不到任何关于如何从 Java 应用程序测量时间的信息。
我无法使用 .explain() 或服务器日志记录来提取时间,我需要从 Java 应用程序中提取时间。我在堆栈中搜索答案,但没有找到。
提前感谢您的任何帮助!
解决方案
推荐阅读
- ios - Swift 5 无法向自定义按钮添加操作(AVPlayerViewController 中的 addTarget 问题)
- angular - Angular 8 ngx-bootstrap modal 找不到组件工厂
- python - 为什么在气流中重新启动后 trigger_dag 没有从失败的任务开始?
- python - 如何在热图中用数字和文本可视化数据?
- android - android中的自定义路径数据库
- javascript - Cheerio - 获取带有替换为空格的 html 标签的文本
- javascript - 我有一个 403 错误 - 客户端被服务器配置拒绝
- jenkins - 在詹金斯中运行场景时,karate.write 在哪里创建文件?
- angular - 基于星期几的表格行背景
- android - 错误:属性 application@name 太存在