工作日常
竹下星空
这个作者很懒,什么都没留下…
展开
-
内存分析
《1》 https://www.cnblogs.com/ityouknow/p/5714703.html《1》数据分析命令 jmap -histo:live 13 | more《2》整体分析命令 jmap -heap 13https://blog.csdn.net/wcy708708/article/details/80541982https://www.ytexpress.cn/love/412102.htmlhttps://www.cnblogs.com/redcreen/archive/原创 2020-05-28 19:38:11 · 159 阅读 · 0 评论 -
记录一次jvm调优过程
1.查看gc情况:结果:服务启动时长是1天,进行了3240左右次minorGC,一共使用时间80s左右。也就是一次minirGC时间是0.02s,FGC是一次,时间是2.2s,fullGC时间过长,需要优化。1.为什么需要优化:FGC会不会导致请求失败?1.1查看GC方式是什么:新生代使用的是PS Young Generation回收器,也就是Parallel Scavenge回收器,特点是使用复制算法的多线程serial回收器,跟perNew区别是更注重程序的吞吐量,吞吐量是要尽量保证系原创 2020-05-26 16:56:06 · 1874 阅读 · 9 评论 -
记录一次sharingjdbc引起的fullgc频繁问题,总结一下fullgc频繁解决的方案
背景:最近做了个需求,为了优化效率所以做了本地缓存和redis缓存,这个跟实际问题没有很大关系,但在排查问题时造成了一定的干扰,导致排查时间变长了,这个问题的现象是上线后cpu急剧增高,fullgc次数比younggc次数多,而且每次fullgc回收的内存很少,fullgc频繁。1.问题现象图:2.分析:通过gc的情况可以看出一直在进行fullgc而没有进行younggc,这种情况猜测是有大对象执行进入了老年代,而且在老年代回收时没有被回收掉,正好代码里也使用的本地缓存,在上之前是有计算本地缓存会占原创 2020-05-26 16:26:57 · 761 阅读 · 1 评论 -
使用java将几张图片合成一张图片
背景描述:最近在做app推送消息,在做管住人推送需要把有更新的关注人头像合成一张图片,展示示例如下:花了一些时间来弄这个,之前没做过图片处理,所以记录一下,合成之后的样例如下:下面是代码:/** * * @Title: modifyImagetogeter * @Description: 将几张图片合成一张图片 * @param: @param b1 *...原创 2020-04-23 10:54:38 · 2944 阅读 · 0 评论 -
一次缓存雪崩的思考
场景:我们为了提高接口的响应时间,在一些高并发的场景(例如我们app的首页,分享页),都会做redis缓存,redis缓存大多数情况下我们都会设置有效时间,此时就可能出现缓存雪崩的情况,也就是在高并发时缓存失效,同一时间都去访问mysql,当然访问mysql是在设置了懒加载的情况(就是缓存没有取到,就去数据库取),此时就可能造成mysql巨大的压力,我们采用的方法一般是这几个。1.不采用懒加载,...原创 2020-04-14 11:53:43 · 161 阅读 · 0 评论 -
记录一次java集成华为,oppo,vivo推送的经历
背景:最近公司app做用户推送功能,通过用户分析,85%的用户用的是华为,oppo,vivo。所以先考虑集成此三个平台,再开发过程中还是有一些坑的,在此记录一下。1.华为推送:sdk地址:https://developer.huawei.com/consumer/cn/service/hms/catalog/huaweipush_v3.html?page=hmssdk_huaweipush_s...原创 2020-04-11 16:19:12 · 1760 阅读 · 0 评论 -
使用Pair优雅的实现键值匹对
场景:很多accessToken是有有效期的,在有效期后需要重新请求accessToken,此时我们需要把accessToken和有效时间关联起来,当然此时使用redis是最佳选择,但如果我们想放在java本地呢?java中常见键值对是map,但此时已经不适合了,因为accessToken和有效期都是变动的,而pair特别适合此场景。/* * Copyright (c) 2010, 2013,...原创 2020-04-03 17:37:19 · 563 阅读 · 0 评论 -
使用@ExceptionHandler实现全局抛异常,完成优雅的报错提示和程序处理
在处理程序过程中,我们总是会需要处理一些异常,有时需要在报错的同时给前端和客户提示,此时一种通常的做法是在service抛异常,然后在controller层try-catch住给以错误信息和错误码的提示。这样会显得比较乱,controller层到处是try-catch。此时使用@ExceptionHandler能够统一处理提示异常,处理方式更加优雅。1.全局处理类:@ControllerAdv...原创 2020-03-13 21:06:35 · 1727 阅读 · 0 评论 -
工作问题总结
1.场景描述:在本地和测试环境能正常打印日志,在预发布环境不能打印日志问题解决:org.slf4j.LoggerFactory包读的是log4j2.xml文件,org.apache.log4j.Logger读的是log4j.Properties文件,而且在不配置log4j.Properties文件的情况下在本地是能打印出日志的,在预发布不能打印的原因未知,但改成org.slf4j.LoggerF...原创 2019-12-12 22:51:11 · 169 阅读 · 0 评论