前言
最近突然收到了系统推送消息告警。打开一看,好家伙!直接 kafka 堆积超过了 100w 条数据,就差基础服务的人找上门来了。
经过简单的一系列排查,终于找到是代码中 Orika 工具使用不当导致内存增加、cpu 过高导致消费变慢。
下面记录下排查的思路
最近突然收到了系统推送消息告警。打开一看,好家伙!直接 kafka 堆积超过了 100w 条数据,就差基础服务的人找上门来了。
经过简单的一系列排查,终于找到是代码中 Orika 工具使用不当导致内存增加、cpu 过高导致消费变慢。
下面记录下排查的思路
JDK1.8在Windows系统上MMap后文件IO关闭无效
最近在开发个小东西,大量涉及了文件的操作。当然这种事情很简单嘛,最基本的打开个文件流进行写不就行了?
1 |
|
我本来也是这样想的,可是当你执行这条语句file.delete()
的时候居然返回的是false,删除失败?why?我不是明明已经将文件流关闭了嘛?接下来就是疯狂找原因了。
FileChannel和MMAP的使用以及benchmark
最近弄了一些小东西,发现它们都有个共同点:对文件的操作。无论是文件的快速写入又或者是大文件的读取等,都要求我们对文件IO有很深的了解。不同文件大小的读写操作,应该选择哪种方式能达到最快的效果?接下来我们看看Java中常见的文件操作方式以及它们在读写大文件时各自的效果。
randLevel算法
1 |
|
【比赛复盘】云上开发,高效智能–阿里云ECS Cloudbuild开发者大赛性能挑战赛道
快暑假的时候,在阿里天池上面闲逛。诶,性能优化挑战赛?点进去看看,初略的读了一下赛题,要实现一个聊天室服务,部署在ECS服务器上面,然后对它进行一下手段的性能优化,感觉还挺合适的(ps: 当时因为写了一个秒杀系统并压测优化过、也看过一些性能调优的书,感觉自己很nb,后面才知道自己还是太嫩了🤣),顿时就报名了。
因为第一次参加这种比赛,所以给自己定的是前50就ok了。然后一个月的初赛,快结束的那一周排名十多名,感觉自己还是很厉害的,但是就一周的时间,看着自己排名直接跌出前 20,到了 23。才意识到自己高兴太早了。
接下来是一个月的复赛时间,这回是要实现一个集群了。中途遇到了老多问题,找了好多官网文档(Vertx、Hazelcast、Ignite、LevelDB),也学到了不少,但还是感觉差点火候😅。每天早上七点多起床一直调试到晚上十点左右,官方人员都被烦的不要不要的了😂(希望不要厌烦)。还是太菜了哈哈哈。
不多说了,先上排名。