我试图找到重用可写对象与在 wordcount mapreduce 程序中创建新对象的性能优势。然而,无论输入数据有多大,这两个版本几乎都需要相同的时间来完成。
我还尝试通过更改为任务提供较低的堆空间,
<property>
<name>mapred.child.java.opts</name>
<value>-Xmx120m</value>
</property>
但是与更高的堆空间相比,这两个版本的运行速度都慢了一点。我永远无法获得重用可写文件以更好地执行的程序。我在这里错过了什么吗?
我修改的字数部分,
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
context.write(new Text(itr.nextToken()), new IntWritable(1));
}
}