加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java中的巨大字符串表

发布时间:2020-12-15 05:06:59 所属栏目:Java 来源:网络整理
导读:我有一个关于在应用程序内存中存储大量字符串的问题.我需要从文件中加载大约5百万行,每行最多255个字符(url),但大多数是?50.我有时需要搜索其中一个.是否有可能在~1GB的RAM上运行这个应用程序? 将 ArrayList String list = new ArrayListString(); 工作?
我有一个关于在应用程序内存中存储大量字符串的问题.我需要从文件中加载大约5百万行,每行最多255个字符(url),但大多数是?50.我有时需要搜索其中一个.是否有可能在~1GB的RAM上运行这个应用程序?

ArrayList <String> list = new ArrayList<String>();

工作?

据我所知,java中的String是用UTF-8编码的,这给了我巨大的内存使用量.是否可以使用ANSI编码的字符串来生成这样的数组?

这是使用参数运行的控制台应用程序

java -Xmx1024M -Xms1024M -jar "PServer.jar" nogui

解决方法

最新的JVM默认支持-XX:UseCompressedStrings,它存储仅在内部使用ASCII作为byte []的字符串.

列表中有几GB的文本不是问题,但从磁盘加载可能需要一段时间(很多秒)

如果平均URL是50个字符,这些字符是ASCII,每个字符串有32个字节的开销,则5个条目可以使用大约400 MB,这对于现代PC或服务器来说并不多.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读