在250行代码中,PYDIS是Redis的克隆POC,速度提高了60%

2020-11-15 19:51:17

PYDIS是一个实验,目的是反驳一些关于性能和优化的错误,特别是关于软件和解释语言的错误。

不幸的是,许多程序员由于缺乏经验、对计算机体系结构的一些知识或对分配给他们的任务的深入理解,花费了无数个小时,以边际性能收益的名义使自己的生活变得更加困难,而且往往还牺牲了许多其他便利(例如类型安全、垃圾收集等)。

下面你会发现一个Redis的克隆,pydis,它是用250行惯用的Python代码编写的,提供了一些Redis功能的子集,这些功能都有官方基准。

附注:这并不是对Redis的批评,Redis是一个出色的项目,也是一个为成千上万的基础设施提供动力的系统级软件。它恰好是我能想象到的最快的软件之一,并且在同一天克隆了它。

那些提高性能的因素。本练习的目的是证明解释语言可以和C语言一样快。因此,虽然用C语言和Python绑定使用更快的解析器是可以的,但用Cython重写PYDI就不行了。

只有在性能收益值得的情况下,我才会接受习惯用法中的小偏差;否则,我会坚持使用习惯用法!

那些要达到与Redis等同的功能,这是有官方基准的。我们不是要在这里开发一个功能齐全的Redis克隆,所以请不要执行没有官方基准的命令。