我正在开发一项功能,该功能可获取数据并将其存储在默认目录中的文件中,最后,我们需要以某种数据结构的形式从文件中传递数据。
在这一点上,它决定不使用 string array
因为传回超过 4mb 的数据会降低我们的性能。但是虽然这么说,但我不明白这会给我们带来什么性能损失?
Hashmap
还在底层使用了一个 array
,这就是我们要进行的工作。
最佳答案
问题不在于返回一个可能很大的结果,性能问题源于产生调用者实际上可能并不真正需要的一个大结果。
一个例子是 Class.getResource() 系列调用。想象一下,它们不是 URL 或 Stream,而是被设计为返回带有实际数据的 byte[]。现在对于拥有大量媒体资源的多媒体应用程序来说,这将是致命的;对于简单地获取媒体资源的 header 信息,调用实际上会导致整个资源被拉入内存,实际使用第一个 KB 中的一些,其余的将被丢弃。很明显,这是对内存和处理时间的浪费。
所以一个大的结果可能导致白费了很多工作。
关于java - 为什么出于性能原因传递大字符串作为返回类型不好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26511165/