gpt4 book ai didi

java - 读/写效率

转载 作者:行者123 更新时间:2023-12-01 13:52:13 30 4
gpt4 key购买 nike

我有一个 SCALA(+ JAVA) 代码,它以一定的速率读写。分析可以告诉我代码中每个方法的执行时间。如何衡量我的程序是否达到了最大效率?为了使我的代码优化,以便它以给定配置可能的最大速度读取。我知道这是特定于硬件的,并且因机器而异。如果有一条短路可以测量这个过程。如果我的程序以硬件可能的最快速率读写。 (我将 FileWriter 与 BufferWriter 一起使用。)

最佳答案

根据描述,您最好的选择可能是尝试。您可以测量什么:

  • 更改缓冲区大小(当我尝试此操作时,这对我没有帮助)
  • 切换到 NIO(可能对大文件有帮助)
  • 缓存您读取的数据(可能对小文件有帮助),如果目录中有很多文件,则缓存目录内容。当文件夹中的文件数量增加时,打开文件的速度会降低。

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

更新

您提供的一些其他内容和技术。

  • 使用分析器或其他一些技术(我更喜欢秒表,因为它们可以提供更稳定、更真实的结果),您需要找到瓶颈所在。
  • 大多数 IO 都可以优化为使用单个缓冲区 - 这对于 Guava 或 Apache Commons IO 来说不那么痛苦。
  • 但是,如果您在序列化链中使用 Jackson,并且这是您的瓶颈,那么您无能为力。改变算法?
  • 有些慢的家伙(与 native 文件系统 IO 相比) - 即 FormatterString.format 非常慢、Jackson 等。
  • 典型的 IO 操作速度较慢 - 即缓冲区分配、字符串连接、分配的 char[] 缓冲区过多对 IO 优化来说是一种不良影响。

关于java - 读/写效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19882019/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com