dag*_*lpe 5 java console input
我必须设计一个能够处理来自STDIN的超过2.5MB/s输入的数据处理器,并向STDOUT输出一个数字.什么是更快,使用BufferedReader然后转换为数据类型或Scanner和nextInt()或nextFloat()?
经验测试结果:BufferedReader和转换速度稍微快一点,但没有太大的意义.
谢谢!
答案很可能是从性能角度来看,从哪个方面来看无关紧要.(并且没有人可以在控制台上以每秒2.5Mb的速度输入!)
如果包含从控制台读取时在操作系统级的推移和其他地方的一切,数量级更多的CPU周期将在获得由用户输入的字节在控制台上比花在解析字符消耗.如果你正在阅读一个文件(通过stdin),我们不再谈论数量级的差异,但如果两种方法明显不同,我仍然会感到惊讶......整体而言.
但你能做的最好的事情就是尝试一下.编写一个与你正在做的大致相近的基准测试不应该花费几分钟的时间,看看哪个替代方案更快......以及多少.(确保测量总的经过时间,而不仅仅是Java应用程序的用户空间CPU时间.)