一句简介:内存最大可存100万,有一天能存300万,再有一天储900万,再一天可存1800万,直到3000万!算法
记忆去年双十一只要当天当收件量超过1800万以上,基本都会出现内存溢出的状况,运维只能重启后台应用,重启后巴枪需等待30~40分钟缓存数据加载,无奈却在胜仗关键时刻出叉子,不但影响分拣效率,且在工做压力较大状况下,场地人员也出现较大情绪!缓存
一、顺丰接近拥有300个中转场,若需每台服务器拆解更换内存条,费时费力;服务器
二、因服务器内存插槽有限,没空闲插槽时,只能以舍弃现有4G换成8G方式进行,形成资源浪费; 运维
三、若是有些中转场服务器较早期,内存扩展支持已到极限,须要更换服务器,形成成本费用则更高; 性能
四、假设全部服务器均有无限内存插槽和扩展支持,但在千万数据量起步,吞吃内存胃口会增长几倍,甚至更多,不久后又要扩展; 优化
算法概述人工智能
一、对象类型的数据转换字节类型的数据;spa
三、须要缓存的数据进行批量且快速压缩处理;对象
四、更新缓存数据时,对压缩数据断点判断与拼接;内存
五、请求缓存数据时,对数据定点标识与二叉树快速查找;
流程图如【图1-1】所示:
一、2倍以上加载效率(数据量越大越明显):jdk1.6,最大内存256,90万数据;
A、旧算法时间截图
B、新算法时间截图
二、30倍内存优化(数据量越大越明显):jdk1.6,最大内存256;
A、旧算法内存截图,101万时已经溢出
B、新算法内存截图,3000万正常
算法难点
一、数据段算法对残缺数据、特殊数据、超长数据、一表多个中转场等容易丢数据状况的拼接;
二、针对数据量较大时,对各类类型(long型、char型、String型等)转换字节算法的性能要求较高;
一、 以习惯扩展硬件内存方式对比,省时省力省钱,只要伴随正常版本的发布,便可达到下降内存的使用。
二、在数据量较大时,不但内存节省,还提升的加载和提取的效率, 能使巴枪终端反应灵敏,同时负载更多巴枪;
三、在后续缓存结构程序,均可以使用本内存优化算法,有效达到无边界效益反应,叠加节省更多的人力物力;