5种常见Bean映射工具的性能比对

467 阅读1分钟

truct 和 JMapper 都是不错的选择,尽管 MapStruct 对 SingleShotTime 给出的结果要差得多。

6. 真实模型测试

对于性能测试,我们可以使用 Java Microbenchmark Harness,关于如何使用它的更多信息可以在 这篇文章:https://www.baeldung.com/java-microbenchmark-harness 中找到。

我们为每个转换器创建了一个单独的基准测试,并将基准测试模式指定为 Mode.All。

6.1. 平均时间

JMH 返回以下平均运行时间结果(越少越好):

平均时间

该基准清楚地表明,MapStruct 和 JMapper 均具有最佳的平均工作时间。

6.2. 吞吐量

在这种模式下,基准测试返回每秒的操作数。我们收到以下结果(越多越好):

在吞吐量模式中,MapStruct 是测试框架中最快的,JMapper 紧随其后。

6.3. SingleShotTime

这种模式允许测量单个操作从开始到结束的时间。基准给出了以下结果(越少越好):

6.4. 采样时间

这种模式允许对每个操作的时间进行采样。三个不同百分位数的结果如下:

SampleTime

尽管简单示例和实际示例的确切结果明显不同,但是它们的趋势相同。在哪种算法最快和哪种算法最慢方面,两个示例都给出了相似的结果。

6.5. 结论

根据我们在本节中执行的真实模型测试,我们可以看出,最佳性能显然属于 MapStruct。在相同的测试中,我们看到 Dozer 始终位于结果表的底部。

7. 总结

在这篇文章中,我们已经进行了五个流行的 Java Bean 映射框架性能测试:ModelMapper MapStruct Orika ,Dozer, JMapper。

示例代码地址:https://github.com/eugenp/tutorials/tree/master/performance-tests。