gpt4 book ai didi

java - 将列表带入内存的成本

转载 作者:行者123 更新时间:2023-11-29 06:22:38 25 4
gpt4 key购买 nike

哪个更贵,贵多少:

List<cards> cardList = getMyList(small);//returns a list of 100 elements
cardList.add(card);

对比

List<cards> cardList = getMyList(big);//returns a list of 100,000 elements
cardList.add(card);

我想我真正的问题是,将一个大列表存入内存是否很昂贵?或者 list 是否足够聪明,只需要达到它需要的大小?添加时小,搜索时大。

最佳答案

嗯,很明显,在内存中获取一个大列表比获取一个小列表更昂贵。事实上,成本因素取决于对象的大小,并取决于 initial heap size .实际上,当 JVM 没有更多内存时,它会将其堆大小从其 Xms 参数加倍到其 Xmx 参数。

但是,只有当 getMyBigList 方法创建对象时,这才是正确的。如果这些对象已经加载到内存中,此方法只会在内存中加载一个包含 100 000 个引用的列表,这不会花费您超过几 Mb。

在这种情况下,您的限制因素将不是 JVM 的内存分配,而是您用来加载该列表的方法。

它们是从网络加载的吗?带宽就是极限。

它们是从磁性硬盘驱动器加载的吗?带宽就是极限。

关于java - 将列表带入内存的成本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2425968/

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