我正在使用PStore
存储一些计算机模拟的结果。不幸的是,当文件变得太大(超过我看到的2GB)时,我无法再将文件写入磁盘而且收到以下错误;
Errno::EINVAL: Invalid argument - <filename>
我知道这可能是IO
的限制,但我想知道是否有解决方法。例如,要读取大型JSON文件,我首先split
该文件,然后分别读取它。可能最终的解决方案应该是在后端切换到合适的数据库,但由于特定Ruby(Sketchup)的一些限制,我使用它并不总是可行的。
答案 0 :(得分:1)
我将假设您的数据有一个可用作原始密钥的字段。
因此我建议您不要将数据转储到一个巨大的文件中,而是可以将数据放入不同的文件/存储桶中。
例如,如果您的数据具有name
字段,则可以获取名称的前1-4个字符,使用rojj-datafile.pstore
之类的字符创建文件并在其中添加条目。任何名称以&#39; rojj&#39;进去那个档案。
更结构化的版本是将第一个char作为目录,然后将文件放在其中,如r/rojj-datafile.pstore
。
显然,您的读/写机制必须考虑到这种新的文件结构,毫无疑问,将数据处理到pstore中的速度会慢一些。