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

文章地址: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 即可。
欢迎关注,更多福利


这里写图片描述
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容