gpt4 book ai didi

java - 优化核心java中的字符串解析

转载 作者:行者123 更新时间:2023-12-01 19:55:14 25 4
gpt4 key购买 nike

如果我们遇到使用 split 方法解析字符串的情况。现在,如果有数百万个字符串需要解析,那么内存中就有很多字符串。不过,从逻辑上讲,我们可以将常用的解析字符串存储在单独的映射中,并返回已解析的字符串。这导致另外还有Map,最坏的情况下,Map 将有多达百万个条目。

有什么办法可以得到最佳的解决方案,这样我们就可以节省内存并解析字符串。

最佳答案

当使用 String.split() 创建的数组符合垃圾回收条件时,已解析的字符串将被丢弃。您可以尝试通过调用 String.intern() 来手动驻留它们,但是如果有数百万个很少使用的唯一字符串,这可能会导致字符串池增长到不合理的大小。

相反,我建议切换到 G1GC。在 JRE 8u20 或更高版本上,您可以通过设置使用字符串重复数据删除功能 ( JEP 192: String Deduplication in G1 ):

-XX:+UseG1GC
-XX:+UseStringDeduplication
-XX:+PrintStringDeduplicationStatistics

PrintStringDeduplicationStatistics 应该输出统计信息,告诉您是否正在进行字符串重复数据删除。

关于java - 优化核心java中的字符串解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875774/

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