Julia:副本copy引发的问题,期待0.4.0版本!

    前面说到,Julia的Array很强大,但是,Julia的索引是副本copy,如果次数多,会引发内存占用积累上升,最后影响程序运行速度。

    在0.4版本前,主要是通过ArrayViews.jl库的view,或用sub(),slice()等方法,降低这个内存占用的情况。

    我用SQLite.jl取SQLite数据库,我用的是0.3.6版本,由于SQLite.jl取出来的是ResultSet类型,大约是一个包含Array的复合类型,我需要转化成Dict{AsciiString,Dict{Date,Array{kbarData}}}的数据接口类型。其中,就需要对ResultSet的对象进行不断的索引取值(Data[i,j]).

    我做了一些实验,比如cu, 我看了一下,有395万条数据,是2010-2014年,五年的期货一分钟的数据。

    由于索引取值是副本的copy, 在目前的情况下,导致内存占用上升至近2G水平。

   花时情况大约时:从数据库取到ResultSet花时19秒左右;

                                   至我再把ResultSet转化为Matrix类型,共花时33秒左右(转换花14秒);

                                   至转化成我的接口数据类型,从数据库至接口数据花时共46秒左右。

    其实,本来,不到400万条数据,我认为在1G左右可能更正常一些。

    最麻烦的是,这个内存占用暂时还没有办法(我没有找到)消下去,一直在堆中堆积着。

    据说,0.4版本后,会改变副本copy的情况,同时期望速度上有所提升!

    0.4版本还会把库导入的时间大大缩短!

    .......

     期待中!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值