测量 MongoDB + Hibernate OGM 在应用程序中的性能

Measuring performance of MongoDB + Hibernate OGM in application

我有一个包含一些功能的应用程序 (MongoDB + Hibernate OGM)。我想针对这些特定功能测量持久性技术对某些操作(搜索、添加、删除等)的性能。

因为我要衡量这些功能的性能,所以我认为最好的方法是衡量应用程序内部的操作,而不是外部。我不太确定这种做法是否正确。

比如我现在做的是:

long startTime = System.currentTimeMillis();
personDao.persist(persons.get(i));
long endTime = System.currentTimeMillis() - startTime;
System.out.println("End:" + endTime);

但是,这样衡量公平吗?有人有什么技巧可以衡量持久性技术的性能吗?基于此,我想将其与其他持久化技术(例如MySQL + Hibernate ORM 或其他NoSQL 技术如Cassandra)进行比较。

查看 this answer to learn more about writing micro benchmarks in Java. Then I recommend to take a look at JMH 编写基准。