摘要:
楔子 Cython 的两个优秀的品质就是它的广度和成熟度,可以编译所有的 Python 代码,并且将 C 的速度代入了 Python,并且还能轻松的和 C、C++ 集成。而本篇文章的任务就是完善 Cython 的功能,并介绍 Cython 的阵列特性,比如:对 Numpy 数组的深入支持。 我们已经 阅读全文
摘要:
楔子 在前面的系列中我们知道了 Cython 如何通过提前编译的方式来对 Python 代码进行加速,这一节我们聚焦在另一个方向上:假设有一个现成的 C 源文件,那么如何才能让 Python 操作它呢? 事实上,Python 访问 C 源文件,我在其它文章中介绍过。当时的方式是将 C 源文件编译成动 阅读全文
摘要:
楔子 我们之前在介绍 Cython 语法的时候,一直都是一个 pyx 文件,而且文件名也一直叫 cython_test.pyx 就没变过,但如果是多个 pyx 文件改怎么办?怎么像 Python 那样进行导入呢? Python 提供了 modules 和 packages 来帮助我们组织项目,这允许 阅读全文
摘要:
Redis 的五种常见数据结构 Redis 的数据类型可谓是 Redis 的精华所在,同样的数据类型,但不同的值对应的存储结构也是不同的。比如:当你存储一个短字符串(小于 44 字节),实际存储的结构是 embstr;长字符串对应的实际存储结构是 raw,这样设计的目的就是为了更好的节约内存。 那么 阅读全文
摘要:
楔子 上一篇博客中,我们介绍 Cython 给 Python 赋予的一些额外特性,以及这些特性的使用方式,但那主要是基本的数据类型和函数。Cython 也可以增强 Python 的类,不过在了解细节之前,我们必须首先了解 Python 类和扩展类之间的区别,这样我们才能明白 Cython 增强 Py 阅读全文
摘要:
一条命令的执行过程有很多细节,但大体可以分为:客户端先将用户输入的命令转化为 Redis 相关的通讯协议,再用 socket 连接的方式将内容发送给服务器端。服务器端在接收到相关内容后,则是先将内容转化为具体的命令,再判断用户授权信息和其它相关信息,当验证通过时会执行最终命令,命令执行完毕后会进行相 阅读全文
摘要:
Redis 是属于单线程还是多线程? Redis 是普及率最高的技术之一,不仅是面试会被经常问到,在工作中也是非常常用的,下面我们就深入的了解一下Redis。 首先,Redis 使用的到底是多线程还是单线程? 不同版本的 Redis 是不同的,在 Redis4.0 之前,Redis 是单线程运行的, 阅读全文
摘要:
楔子 本文来自于公众号《小林coding》。 操作系统是一个非常深层次的领域,想学好的话可以说是一个非常困难的事情,不过操作系统涉及的范围很广,我们可以研究一些我们感兴趣、或者说离我们近一些的部分。比如:内存管理,明白了内存管理,可以对整个操作系统的工作会有一个初步的轮廓。 虚拟内存 如果你是电子相 阅读全文
摘要:
楔子 前面我们说了 Cython 是什么,为什么我们要用它,以及如何编译和运行 Cython 代码。有了这些知识,那么是时候进入 Cython 的深度探索之路了。 Cython 和 Python 的差别从大方向上来说无非两个,一个是:运行时解释和预先编译;另一个是:动态类型和静态类型。 解释执行 V 阅读全文
摘要:
楔子 Python 和 C、C++ 之间一个最重要的差异就是 Python 是解释型语言,而 C、C++ 是编译型语言。如果开发 Python 程序,那么在修改代码之后可以立刻运行,而 C、C++ 则需要一个编译步骤。编译一个规模比较大的 C、C++ 程序,那么可能会花费我们几个小时甚至几天的时间; 阅读全文