首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >读写效率

读写效率
EN

Stack Overflow用户
提问于 2013-11-09 19:21:08
回答 1查看 130关注 0票数 0

我有一个SCALA(+ JAVA)代码,它以一定的速度读写。概要分析告诉我代码中的每个方法执行所需的时间。如何衡量我的程序是否达到了它的最大效率?使我的代码优化,使它以最大的速度阅读,这是可能的给配置,我知道这是具体的硬件,并不同的机器。如果有一个短期的方法来衡量这个过程。如果我的程序是以最快的速度读写的硬件。(我使用的是FileWriter和BufferWriter。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-09 19:35:54

根据你的描述,你最好的选择可能是试验。你能衡量的是:

  • 更改缓冲区大小(当我尝试这个时,这并没有帮助我)
  • 切换到NIO (可能有助于处理大型文件)
  • 缓存所读取的数据(对于小文件可能有帮助),如果其中有许多文件,则缓存dir内容。当文件夹中的文件数量增加时,打开文件的速度会下降。

要确保代码分析中的代码没有问题,一种可能的技术是获取方法的CPU时间分配树,并在大部分时间内扩展执行路径。如果所有这些路径都指向Java标准库,那么您可能达到了最佳性能。

更新

您提供的其他一些东西和技巧。

  • 使用分析器或其他一些技术(我更喜欢秒表,因为它们提供更稳定和现实的结果),您需要找到您的瓶颈。
  • 可以对大多数IO进行优化,使其使用单个缓冲区--这对于番石榴或来说不那么痛苦。
  • 但是,如果在序列化链中使用Jackson (如果这是您的瓶颈),那么您就无能为力了。改变算法?
  • 有些人比较慢(与本地文件系统IO相比)--即Formatters、String.format非常慢、Jackson等等。
  • 对于IO来说,有一些典型的慢操作--即缓冲区分配、字符串连接、过多分配的char[]缓冲区是IO优化的一种味道。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19882019

复制
相关文章

相似问题

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