java - 为什么出于性能原因传递大字符串作为返回类型不好?

标签 java algorithm design-patterns

我正在开发一项功能,该功能可获取数据并将其存储在默认目录中的文件中,最后,我们需要以某种数据结构的形式从文件中传递数据。

在这一点上,它决定不使用 string array 因为传回超过 4mb 的数据会降低我们的性能。但是虽然这么说,但我不明白这会给我们带来什么性能损失?

Hashmap 还在底层使用了一个 array,这就是我们要进行的工作。

最佳答案

问题不在于返回一个可能很大的结果,性能问题源于产生调用者实际上可能并不真正需要的一个大结果。

一个例子是 Class.getResource() 系列调用。想象一下,它们不是 URL 或 Stream,而是被设计为返回带有实际数据的 byte[]。现在对于拥有大量媒体资源的多媒体应用程序来说,这将是致命的;对于简单地获取媒体资源的 header 信息,调用实际上会导致整个资源被拉入内存,实际使用第一个 KB 中的一些,其余的将被丢弃。很明显,这是对内存和处理时间的浪费。

所以一个大的结果可能导致白费了很多工作。

关于java - 为什么出于性能原因传递大字符串作为返回类型不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26511165/

相关文章:

java - 多模式使用的副作用

java - 避免没有集合的重复?

java:从 StringBuilder 中删除所有空格的最有效方法是什么

java - Python 和 Java 中的矩阵减法差异

java - 从查询更新 JTable

algorithm - 多边形的压缩表示

c++ - 子序列和模的乘积

java - 构建这个复杂对象的设计模式

algorithm - N 次幂 n i-e n^n 是否是多项式? n^2 和 n^n 之间是否存在多项式差异?

c# - C# 中的 lock 关键字