社区
数据结构与算法
帖子详情
内存优化问题2
amdgaming
2013-08-20 11:24:31
我有一个hashmap
key是从key1到key200000,不连续
而每一个key对应的value一个是10万到100万的中随机的30个数字,不重复,
比如这样:
key1:数组[10万,20万....300万]
key2:数组[20万,40万,33万零100 共30个数字]
前提是我现在要查询是通过key来找那个数组
现在的vaule应该是重复存储,有没有办法不怎么降低查询速度的情况下
降低存储需要的空间,请各位支招,谢谢!
...全文
306
4
打赏
收藏
内存优化问题2
我有一个hashmap key是从key1到key200000,不连续 而每一个key对应的value一个是10万到100万的中随机的30个数字,不重复, 比如这样: key1:数组[10万,20万....300万] key2:数组[20万,40万,33万零100 共30个数字] 前提是我现在要查询是通过key来找那个数组 现在的vaule应该是重复存储,有没有办法不怎么降低查询速度的情况下 降低存储需要的空间,请各位支招,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hua_zhixing_
2013-09-12
打赏
举报
回复
你的hashmap存储的个数可能达到600W,而value用到的个数只有不到100W,所以要降低存储,我觉得就是如何去重的问题。可以尝试把value作为key,key作为value来重新hash。如果反过来hash产生的重复数据比你现在的重复数据还多,那此方法就不可取了。
happytengfei
2013-08-21
打赏
举报
回复
嗯。有点难度,首先你内存的花销为: key number * 30 * sizeof(each value in array)。所以一个有效的办法是观察一下所有的key是不是有规律的,如果有的话,合理的合并key的value。这样使得key number下降。也可以从另外一个方向考虑减少内存,就是对所有的key进行排序,编号。然后将200000*30的数据存到文件里,当输入key值时,将文件中相应的块load到内存里。
FancyMouse
2013-08-20
打赏
举报
回复
30个数拉出去。key2数组存储30个数中的index。1字节就够了。
amdgaming
2013-08-20
打赏
举报
回复
有没有办法不怎么降低查询速度的情况下 降低一点点可以接受
C++性能
优化
技术
C++性能
优化
技术,详细介绍了可以普遍提升的一些C++变成技巧,是您精通
优化
技术的良师益友。
查看
内存
使用情况的汇编源代码
查看
内存
使用情况的汇编源代码
SciTech.NET.Memory.Profiler.v4.0.114.安装_注册机
NET Memory Profiler-找到
内存
泄漏并
优化
内存
使用针对C#,VB.Net, 或其它.Net程序。 包含安装+注册机
Android照片结合LruCache和DiskLruCache Demo源码程序
此为示例代码,如对资源内容有疑问,可以到以下博客地址中留言: http://blog.csdn.net/guolin_blog/article/details/34093441
oracle开发案例(oracle操作手册)
oracle开发案例(oracle操作手册)
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章