我已经写了一个递归函数来获取julia中较大数组中的对象。出现下列错误:StackOverflowError与元组
ERROR: LoadError: StackOverflowError:
in cat_t at abstractarray.jl:831
in recGetObjChar at /home/user/Desktop/program.jl:1046
in recGetObjChar at /home/user/Desktop/program.jl:1075 (repeats 9179 times)
in getImChars at /home/user/Desktop/program.jl:968
in main at /home/user/Desktop/program.jl:69
in include at ./boot.jl:261
in include_from_node1 at ./loading.jl:304
in process_options at ./client.jl:308
in _start at ./client.jl:411
while loading /home/user/Desktop/program.jl, in expression starting on line 78
如果你想看看代码,我已经打开了一个问题(Assertion failed, process aborted)。在为julia v 0.4调试我的代码之后,更明显的是,导致问题的原因。 tupel locObj比9000个条目大得多,因为一个对象可以是例如150 x 150大。 这将导致locObj的长度为22500。 tupels有多大,我怎样才能避免stackoverflow?有另一种方法来保存我的价值观吗?
IMO,使用机器RAM作为大数据阵列的库存,可能会导致你对不同种类的内存相关的问题,所以最好将它们存储在文件中,朱莉娅提供了不同的方式处理数据文件的工作:HTTPS:/ /github.com/svaksha/Julia.jl/blob/master/Database.md,但我对你的数据类型的建议是将它们存储在一个**内存映射**数组中,内存映射是一个茱莉亚内置工具,可帮助您处理大量数据,http://docs.julialang.org/en/release-0.4/stdlib/io-network/#memory-mapped-io –
@LuWi道歉。我其实并没有打扰到这个链接,所以我不知道这导致了一个SO问题。我会删除我之前的评论。 – Jubobs