spark从入门到放弃二十:Spark 性能优化(3)优化数据结构

122 篇文章 15 订阅
43 篇文章 1 订阅

文章地址:http://www.haha174.top/article/details/258576
要较少内存的消耗,除了使用高效的序列化库之外还有一个很重要的事情,就是优化数据结构。从而避免java语法特性中所导致的额外的内存开销,比如基于指针的java的数据结构以及包装类型。
那么如何优化数据结构呢
1优先使用数组以及字符串,而不是集合类。也就是说优先用array,而不是ArrarList,LinkedList,HashMap等集合。

比如,有个List<Integer>list =new ArrayList<>();将其替换为int[] arr=new Int[];这样的话array即比List减少了额外信息存储开销,还能使用原始数据类型(int)来存储数据。比List中用Integer这种包装类型存储数据,要节省内存的多。
还比如通常企业级应用中做法是对于hashMap 和List 这种数据统一用String 拼接成特殊格式的字符串.

2 避免使用多层嵌套的对象结构,可以使用json 替代存储。

3对于有些能避免的场景,尽量使用int 代替String ,因为String虽然比Map List 高效多了但是还是有很多的额外内存消耗

4 在spark应用中id不要使用常用的uuid,因为没有办法转成int就用自增的int 类型的id 即可。

欢迎关注,更多福利

这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值