dozerMap器性能

ercv8c1e  于 2021-06-03  发布在  Hadoop
关注(0)|答案(0)|浏览(261)

我在hadoop工作中做了一些工作,能够快速获得对象层次结构之间的dozerMap。我有一些复杂的对象需要转换成节俭类型。当我启用这个Map时,它会在我5分钟的处理运行中增加将近5分钟的执行时间(使之增加10分钟)加上或减去一些变化。我打印出推土机的统计数据,它清楚地表明,它是花5分钟做Map。有没有办法加快速度?定义Map与让它通过反射自动Map相比有什么好处吗?
我就是这样打印数据的:

GlobalStatistics stats = GlobalStatistics.getInstance();
for (Statistic stat : stats.getStatsMgr().getStatistics()) {
    for (StatisticEntry entry : stat.getEntries()) {
        System.out.println(entry.getKey() + ": " + entry.getValue());
    }
}

这是输出:

SUPER_TYPE_CHECK: 970293
SUPER TYPE CHECK: 6
MAPPER_INSTANCES_COUNT: 1
MAPPING_SUCCESS_COUNT: 10093
FIELD_MAPPING_SUCCESS_COUNT: 25883488
MAPPING_TIME: 478486

我很好奇的一点是,生成的thrift类具有公共字段以及getter/setter方法。我需要回去重新生成bean风格的私有字段。推土机会在这些公共场地上做额外的工作吗?如何加快Map速度?我知道在开发时间和执行时间之间有权衡,我总是可以放下手头的工作来实现自己的转换,但是我很惊讶使用dozer会造成多大的性能损失。我做错什么了吗?
另外,为什么我看不到任何有关推土机高速缓存命中率的统计数据?此页表示应该有更多可用的统计信息:http://dozer.sourceforge.net/documentation/configuration/statistics.html

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题