![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排坑
晓寒风骤
这个作者很懒,什么都没留下…
展开
-
kryo序列化的优缺点
其实之前在“Kryo序列化生效位置”处已经提到了Kryo序列化的优点,这里总结一下,大致为:1. 算子函数中使用到的外部变量,使用Kryo以后:优化网络传输的性能,可以优化集群中内存的占用和消耗;2. 持久化RDD,优化内存的占用和消耗,持久化RDD占用的内存越少,task执行的时候,创建的对象,就不至于频繁的占满内存,频繁发生GC;3、shuffle:可以优化网络传输的性能。Kryo序列化机制比默认的Java序列化机制速度要快,序列化后的数据要更小,大概是Java序列化机制的1...原创 2020-07-10 18:03:45 · 1753 阅读 · 0 评论 -
阿里代码规范检查工具的安装使用
该插件由阿里巴巴 P3C 项目组研发。代码已经开源,GitHub:https://github.com/alibaba/p3c阿里介绍文章:https://mp.weixin.qq.com/s/IbibsXlWHlM59kfXJqRvZA#rd插件支持了IDEA、Eclipse,在扫描代码后,将不符合规约的代码显示出来,甚至在 IDEA 上,还基于 Inspection 机制提供了实时检测功能,编写代码的同时也能快速发现问题所在,还实现了批量一键修复的功能。IDEA 下如何使用?1.打开原创 2020-05-13 10:29:35 · 271 阅读 · 0 评论 -
使用kryo做序列化遇到的几个坑
其中在整合kryo的时候,遇到了一些挑战,记录如下:问题一:在系列化有Hashtable、Hashmap之类的对象属性的时候,会遇到异常:com.esotericsoftware.kryo.KryoException: Class cannot be created (missing no-arg constructor): java.util.Collections$Synchroniz...原创 2020-03-31 10:40:50 · 5304 阅读 · 0 评论 -
通过Calendar类正确计算两日期之间的间隔
在开发时需要用到一个提示用户已用天数的功能,从实现上来看无非就是持久化存入用户第一次使用应用的时间firstTime(通过SharedPreferences 、xml、sqlite等),当用户再次使用应用时取得此时时间presentTime,通过两个时间计算其间隔天数。当取得两个时间变量后,网上计算日期间隔的做法通常是这样的(获得两时间的毫秒数之差再进行处理):long beginTime...原创 2019-12-09 11:04:01 · 1827 阅读 · 0 评论 -
OOM(四):201911080845再一次溢出
继20191105后,再一次OOM。起因:7号晚上gtrace报警,早上报警,排查,发现redis连接超时。于是找DBA一阵分析,结果监控显示redis健康的不得了:很幸运也很不幸的是,线上一个劲的警报警报,发现一个异常,显示OOM了,老夫前几天才解决了,怎么又来了。据说那扇门被打开,快乐再也不回来。驾轻就熟,挺身直刺G点,老姿势,老动作。于是就有下面的结果。...原创 2019-11-08 15:11:33 · 303 阅读 · 0 评论 -
OOM(三):VisualVM使用
环境:jdk1.8.0_111 Java堆存储的内容为各对象实例,想要人为导致JAVA堆溢出只需不断创建对象,同时持有引用以保证gcRoot与对象之间存在路径,防止被GC清除即可,代码如下。import java.util.ArrayList;/** * Use VM args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError * Cre...原创 2019-11-06 10:27:33 · 742 阅读 · 0 评论 -
OOM(二):eclipse的MAT使用
1.MAT简介:MAT 全称Eclipse Memory Analysis Tools 是一个分析 Java堆数据的专业工具,可以计算出内存中对象的实例数量、占用空间大小、引用关系等,看看是谁阻止了垃圾收集器的回收工作,从而定位内存泄漏的原因。2.什么时候会用到MAT?a)OutOfMemoryError的时候,触发full gc,但空间却回收不了,引发内存泄露b)java...原创 2019-11-06 10:26:34 · 737 阅读 · 0 评论 -
OOM(一):线上排查及解决流程
20191105中午12点左右线上报警。通过gtrace,发现接口响应超时:通过gtrace查看方法调用链:发现内存溢出。于是迅速切到普罗米修斯监控:发现服务从12点01分到04分之间不可用,但之后,在不重启服务的情况下,对外正常提供服务。并且各项指标正常。得出结论,不是堆内存泄露,而是堆内存溢出。接下来就顺理成章的需要...原创 2019-11-06 10:24:41 · 1396 阅读 · 0 评论 -
POI(三):SAX方式 之 实战心得和演示案例
总结:如果你的Excel数据很少,大致2000行以下,20列以内,那么用POI的dom方式够用。如果你的行数经常大于1w或甚至百万行,那么POI读取Excel 必须或者说只能用SAX方式,因为只有这方法不会内存溢出。但是看到网友针对前2篇的文章,即第01篇、第02篇给与我的反馈来看,网友并没有理解它的使用方式,以及为什么构造函数要设计成如下形式:public MyExcel200...原创 2019-10-18 16:46:54 · 1090 阅读 · 0 评论 -
POI(二):SAX方式之读取大数据2007版Excel(xlsx)
希望,这段代码能为你争取更多的学习时间,而不是懒惰的借口。package com.fulong.utils.poi;import java.io.File;/* ==================================================================== Licensed to the Apache Software Foundat...原创 2019-10-18 16:42:53 · 323 阅读 · 0 评论 -
POI(一):SAX方式之读取大数据2007版Excel(xlsx)
1.开发环境:jdk7,poi3.13如图:红色标注的jar包需要自己去下,这个是利用SAX机理处理xml的接口,而POI实现了它(我记得是这样,仅供参考)2. 背景需求:前台上传一个xlsx格式的Excel(超过10w条,每条20列),保存到服务器,然后在页面上分页显示出来,将不符合规则的行表红色或黄色,点击处理按钮,将所有数据插入数据库。...原创 2019-10-18 16:41:27 · 1102 阅读 · 0 评论 -
排坑(二):线上问题排查流程
原则在保留现场的情况下尽快的恢复线上服务正常JVM健康状态堆内存的涨幅趋势,GC 曲线等数据jvm crash诊断工具:https://github.com/xpbob/CrashAnalysisprometheus界面查看 若没有接入prometheus,直接登录问题所在服务器查看JVM参数加上 -XX:+HeapDumpOnOutOfMemoryError 参数,该参数作用...原创 2019-07-12 09:55:59 · 268 阅读 · 0 评论 -
排坑(一):@Transaction失效
1. Spring事务的基本原理事务管理是应用系统开发中必不可少的一部分。Spring 为事务管理提供了丰富的功能支持。Spring 事务管理分为编码式和声明式的两种方式。编程式事务指的是通过编码方式实现事务;声明式事务基于 AOP,将具体业务逻辑与事务处理解耦。声明式事务管理使业务代码逻辑不受污染, 因此在实际使用中声明式事务用的比较多。声明式事务有两种方式,一种是在配置文件(xml)中做相...原创 2019-07-12 09:54:33 · 2614 阅读 · 1 评论