获得第三届阿里中间件性能大赛冠军
一不小心拿到了天池阿里中间件性能大赛的冠军,准确的说还有个 24 小时即刻挑战赛(个人赛)的亚军。
Emmm... 过去太久了,不知道说什么感言了。以下是是比赛的题目以及我的解答,备忘。
一不小心拿到了天池阿里中间件性能大赛的冠军,准确的说还有个 24 小时即刻挑战赛(个人赛)的亚军。
Emmm... 过去太久了,不知道说什么感言了。以下是是比赛的题目以及我的解答,备忘。
测试方案:
为了保证公平,Go 中自行封装一个 Integer 而不是用 int 型;考虑到实际中大多数情况下 channel 里走的都是对象而非基本类型,这样是合理的。
经过一个月的学习,成功通过了 AWS 考试认证。不得不说相比从零开始闷声摸索,学习带来的收获还是很大的,避免了一些 AWS 的大坑,也了解了一些 best practice 的系统设计。
可惜这个博客并不是在 AWS 上(原因可能是贫穷)。
以下是我看过的学习资料:
找到这篇文章是在阅读 Kafka 文档时,一个名为 “Don't fear the filesystem!”的段落中提到的。文档指出,我们总是思维定势地以为磁盘很慢,内存很快。然而今天的计算机体系结构中,并非这么简单:
- 因为操作系统 PageCache 的存在,磁盘操作可能很快
- 虽然磁盘 IOPS 难以提高,但吞吐量在不断上升;换句话说,顺序读写磁盘非常快
- CPU Cache 常常被忽略了,了解 CPU Cache 对提升内存读写性能至关重要
当你开始深入 Varnish 的源代码后,应该会发觉它与你日常所见的一般应用软件有着明显不同,而这绝非偶然。
多年以来我的绝大部分时间花费在 FreeBSD 的内核开发上,而每每涉足用户空间编程,却总是毫无例外地发现那里的人们还在以1975年的方式工作。
题目:https://www.hackerrank.com/contests/w31/challenges/spanning-tree-fraction 一张连通图G=(V,E)上,每条边有a和b两个整数,求一个生成树使得Sum(a) / Sum(b) 最大,输出这个最大值的分数形式 p/q
设 \(\frac{\sum{a\_i}}{\sum{b\_i}} \ge
c\) ,经过变换可得,\(\sum{(a\_i - b\_i
c)} \ge 0\),这种形式下 ai - bi * c
就退化为一条边的
cost,能方便得用 Prim 或 Kruskal 算法求出 cost 最大的生成树。
SQS 是 AWS 的消息队列服务,用于暂存消息并等待接收者处理。