Language agnostic 什么语言适用于非常大的列表?

Language agnostic 什么语言适用于非常大的列表?,language-agnostic,containers,capacity,Language Agnostic,Containers,Capacity,对于Java.util中的数组和容器,Java(可能还有底层的C-ish代码)的最大容量为Integer.max_VALUE(~20亿)。还有其他语言具有更大容量的容器吗?您可以用支持长索引的两种语言编写自己的容器。您的机器有足够的RAM来使用更多吗?如果您这样做,我会说您需要自己的集合,因为内置的集合的性能无疑会扩展…如果您编写自己的容器,则没有限制。我通常使用数据库来存储如此大量的数据。解决了许多缩放问题。如果您开始达到与列表/数组/集合中可存储元素数量相关的32位数字限制,那么我将认真开始

对于Java.util中的数组和容器,Java(可能还有底层的C-ish代码)的最大容量为Integer.max_VALUE(~20亿)。还有其他语言具有更大容量的容器吗?

您可以用支持
长索引的两种语言编写自己的容器。

您的机器有足够的RAM来使用更多吗?如果您这样做,我会说您需要自己的集合,因为内置的集合的性能无疑会扩展…

如果您编写自己的容器,则没有限制。

我通常使用数据库来存储如此大量的数据。解决了许多缩放问题。

如果您开始达到与列表/数组/集合中可存储元素数量相关的32位数字限制,那么我将认真开始寻找一种新方法来实现您的算法


<>你会有很多“我们需要这个专门的硬件来执行我们的程序”的类型。

< P>你不需要语言,你想要<强>数据库> /Sturial> .< /P> < P> STL容器中C++使用SIZEZT索引,在64位机器上是64位。

< P>数据库可能更适合你的目的。 例如

或者,对于固定大小对象的数组,可能值得尝试使用内存映射文件,但您需要一个操作系统API的语言接口


编辑:或仅在ORM上使用将集合映射到标准SQL数据库。大多数语言都存在这些问题。例如,ruby有activerecord,Java有hibernate。

没有人愿意一次处理内存中如此大量的数据。我不知道您想做什么,但如果您需要最大限度地利用常驻数据,您必须考虑:

  • 首先使用动态内存分配
  • 如果这是一个选项,您可以尝试(在操作系统中)最大化用户模式虚拟内存寻址空间。e、 g.32位Windows可以将典型的2GB/2GB寻址空间用于用户模式/内核或3GB/1GB
  • 始终监视您的提交内存/OS提交限制,这样您就不会强制操作系统进行重击,从而降低整个系统的速度
  • 您可以锁定最小内存量,以便独占使用您的应用程序。这因操作系统而异,但例如,您可以让用户修复应用程序的256MB、512MB、1GB内存空间
  • 如果您需要超过可用的usermode地址空间,可以使用64位系统,也可以使用带有PAE等扩展的32位系统

嗯,有很多东西需要研究,但只有我的2c。

也许LISP就是你要找的?不过,看起来你可能只是做错了什么,有这么大的一张清单。