CPU飙高,频繁GC,怎么排查?

herman 4年前 (2020-01-15) 1624浏览

处理过线上问题的同学基本上都会遇到系统突然运行缓慢,CPU 100%,以及Full GC次数过多的问题。当然,这些问题的最终导致的直观现象就是系统运行缓慢,并且有大量的报警。 本文主要针对系统运行缓慢这一问题,提供该问题的排查思路,从而定位出...

排序算法之桶排序

herman 4年前 (2020-01-14) 1585浏览

桶排序(Bucket sort)也有人叫做所谓的箱排序。听过的人可能不多,名气不大,但它却是 10 大排序算法中的一部分,足见得它的重要性。今天我们一起来聊聊它。 桶排序的工作原理是将数组分到有限数量的桶里。每个桶再个别排序(有可能再使用别的...

排序算法之插入排序

herman 4年前 (2020-01-14) 1264浏览

插入排序是一种最容易理解的排序,我给搓麻将和打牌的大妈都能讲明白。因为,它和打牌一样,每当接到一张牌,我们都选择性的插入到手中已有序的牌中。 插入排序往往会和冒泡排序拿来相比之下,主要原因是,插入排序比冒泡排序更受欢迎!比如,我们把执行一个赋...

排序算法之鸡尾酒排序

herman 4年前 (2020-01-14) 1849浏览

正如我上一篇文章所说,冒泡排序虽然简单,也很稳定,复杂度也不是最高的。但是它还存在在不少的优化空间,于是诞生了很多基于冒泡排序的改进算法,今天我们要讲的鸡尾酒排序算法就是其中之一。 鸡尾酒排序,也就是定向冒泡排序,鸡尾酒搅拌排序,搅拌排序(也...

排序算法之冒泡排序

herman 4年前 (2020-01-13) 1320浏览

最近在阅读 Redis 和 MySQL 底层源码时,发现算法真的很重要。于是,就想先把简单的排序算法再摸一遍,最后整理成一个专栏,方便广大网友查阅! 排序算法(英语:Sorting algorithm)是一种能将一串数据依照特定排序方式进行排...

volatile可见性原理最强总结

herman 4年前 (2020-01-11) 2600浏览

最近看到一篇很好的 volatile 可见性原理总结,分享给大家! volatile 是一种轻量且在有限的条件下线程安全技术,它保证修饰的变量的可见性和有序性,但非原子性。相对于 synchronize 高效,而常常跟 synchronize...

从根上理解order by limit分页数据重复问题

herman 4年前 (2020-01-11) 2059浏览

这个问题相信不少人都遇到过,但很少有人追根溯源。今天我抽出一点时间,来讨论讨论 order by + limit 在什么情况下会出现分页数据重复。 昨天在“CTO”群提问了之后,不少大神都回答的相当正确。我这里结合一下他们的回答,并补充一些内...

被 YYYY-MM-dd Bug 到的除了你还有腾讯微信!

herman 4年前 (2020-01-03) 2556浏览

Ctrl + C 和 Ctrl + V 使用惯了,Bug 都一样,翻车也一起翻! 这两天,相信不少公司都被 YYYY-MM-dd 的时间格式化方式坑到了。其中包括,小米,微信等互联网一线大型公司。 微信赞赏里面直接出现了错误日期的 Bu...

对不起,网上的那些 Redis 分布式锁的用法都是错的!

herman 4年前 (2019-12-23) 2520浏览

Redis 分布式锁的文章,网上一大片。但是大多数的实现,都有存在漏洞!这也正是为什么 Redis 的作者推出 Redlock 的原因之一了。 今天,我来说说,常见的 Redis 分布式锁都有哪些漏洞! 分布式锁的 N 多 Bug,你真...