java - 如何最快地存取double数组
怪我咯
怪我咯 2017-04-17 11:06:15
[Java讨论组]

第一次问题在这里,再简单描述一下:

基于probalistic latent semantic indexing(plsa)做图像检索,需要计算一个条件概率p(z|w,v,d),我直接定义成了“double pzdwtwv[][][][];”简单地说,z是主题,w是英文单词,v是视觉单词,d是文档,大小分别为12100500*7000,就是12个主题,100个英文单词,500个视觉单词,7000个文档,double型的话算下来大概32G,其中z和d的数目是确定的,每个d的w和v的数目是不确定的。

因为数组不能全部放进内存,所以之前把他放在mongodb数据库中,但是速度太慢,现在尝试用文件存储,现看了一下java编程思想,感觉应该使用内存映射文件,具体的思路是把这个四维数组拆分成几个内存映射文件,用几个线程一起处理。 不知道应该注意什么,求大神指教

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
高洛峰

建议看看有没有online算法,或者图像分块,然后用lazy load的Map或者Cache来做这个事情。

http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/cache/LoadingCache.html

内存数据库可以用redis试试,如果你有几台机器的话。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号