我需要阅读许多 SQLite 数据库,超过 54,000 个数据库,以生成统计信息。
我创建了一个 Ruby 应用程序,在 Ruby 1.8.7 补丁级别 371 上运行,使用 Sequel 3.44.0 和 Sqlite 1.3.7。
我写了这段代码来读取数据库:
for i in databases
db= Sequel.sqlite(i)
# DB'query and other operation
db.disconnect
end
一段时间后程序崩溃,没有错误。我在我的应用程序运行时查看了内存的消耗,它会增加直到 RAM 的大小。
是垃圾回收问题吗?还是我有什么错误?有没有用 Ruby 读取大量数据库的方法?
编辑:
我有 4GB 内存。我试过:
databases.each { |i| }
但没有任何效果。当程序达到 2GB 的内存使用它停止。