Ruby 内存不足
我可能需要建立一个哈希表,它可能会变得非常大。我想知道哈希表是否不适合内存,解决这个问题的最佳方法是什么,以避免应用程序在内存不足时崩溃Ruby 内存不足,ruby,memory,Ruby,Memory,我可能需要建立一个哈希表,它可能会变得非常大。我想知道哈希表是否不适合内存,解决这个问题的最佳方法是什么,以避免应用程序在内存不足时崩溃 用例:此哈希表包含一组id,这些id在for循环中被引用,该循环需要查询特定单词的id。如果您真的认为哈希会变得如此之大,那么您可能不应该将此数据存储在ram中的哈希中。我认为当你的应用程序内存不足时,你很难避免崩溃。我想关键是创建机制以避免大量内存消耗 我不知道你的情况,但我真的怀疑你描述的哈希表是否会让一台合理的计算机内存不足。如果你真的这么认为,也许你应
用例:此哈希表包含一组id,这些id在for循环中被引用,该循环需要查询特定单词的id。如果您真的认为哈希会变得如此之大,那么您可能不应该将此数据存储在ram中的哈希中。我认为当你的应用程序内存不足时,你很难避免崩溃。我想关键是创建机制以避免大量内存消耗
我不知道你的情况,但我真的怀疑你描述的哈希表是否会让一台合理的计算机内存不足。如果你真的这么认为,也许你应该使用键值存储数据库(Redis相当容易学习)或其他类型的NoSQL数据库。任何时候,如果你有无法在运行中轻松重新创建的数据,那么你需要制定规定,将其从RAM中取出并放到磁盘上。任何类型的数据存储都可以做到这一点。您可以使用平面文件、文本文件或YAML文件 如果您需要快速访问,那么您将查看某种类型的数据库,因为读取平面/文本文件不容易允许随机访问。SQLLite可以做到这一点,也可以使用无sql数据库
如果您需要允许多个进程访问数据并具有良好的访问限制,和/或将数据存储在一台计算机上并从另一台计算机访问数据,那么您将查看某种类型的数据库。在这一点上,我会研究MySQL或Postgres。我更喜欢后者,但两者都会起作用。你说的“非常大”是什么意思?我认为这类问题确实需要非常大的规模。你确定这会成为一个问题吗?是的,我只是在假设,如果是这样的话,你会怎么做。。或者说还有其他结构也占用了大量内存。