首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >I/O函数式编程和java编程

I/O函数式编程和java编程
EN

Stack Overflow用户
提问于 2011-10-15 03:07:48
回答 5查看 675关注 0票数 0

嗨:我们正在使用Java开发一个多线程应用程序。我们发现了Java I/O的瓶颈。例如,函数式编程,scala,有更好的I/O吞吐量吗?我们将有许多核心cpu,从这个意义上说,业务逻辑可以非常快地处理,但I/O将是一个瓶颈。有什么好的解决方案吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-10-15 03:12:49

由于Scala在Java虚拟机上运行,并且(在幕后)使用Java API进行I/O,因此切换到scala不太可能提供比编写良好的Java代码更好的性能。

至于解决方案,你对这个问题的描述太粗略了,不能推荐具体的解决方案。

票数 11
EN

Stack Overflow用户

发布于 2011-10-15 03:17:04

您是否正在使用或尝试使用Java nio (非阻塞)?开发人员报告了高达300%的性能提升。

Java NIO FileChannel versus FileOutputstream performance / usefulness (请同时参考本文)

票数 8
EN

Stack Overflow用户

发布于 2011-10-15 04:51:41

通常,当人们抱怨Java IO很慢时,是他们对IO所做的事情很慢,而不是IO本身。例如,BufferedReader读取文本行(相对较慢)可以读取90MB/s,而使用合适的CPU/HDD。您可以使用内存映射文件使其更快,但除非您的磁盘驱动器能够处理它,否则不会有太大的不同。

您可以采取一些措施来提高IO性能,但您很快就会发现,提高IO速度的方法是改进硬件。

如果您使用的硬盘可以保持100 MB/s的读取速度和120 IOPS,您将受到这些因素的限制,将该驱动器替换为具有500 MB/s和80,000 IOPS的SSD将会更快。

同样,如果您使用的是100 Mb/s网络,则可能只有12 MB/s,在1 GB/s网络上可能会达到110 MB/s,而在10 GB-E网络上,您可能会幸运地获得1 Gb/s。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7772403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档