Python gevent + zmq + redis 搭配小实践

前些日子与 darkforday 交流时听说了 Python 中
基于 libev 封装的 gevent 库, 编码和性能上也是值得关注的.

简单介绍下 gevent (来自 tutorial ):

gevent is a concurrency library based around libev.
It provides a clean API for a variety of concurrency
and network related tasks.

翻译即:
gevent 是一个基于 libev的并发库, 提供了大量清楚简洁的并发和网络
相关任务的API

Continue reading

Python generator 与 yield 关键字

初次使用 tornado 开发服务器, 也进一步学习使用 Python 这门语言.
开始对 Python 的语法糖 decorator 感兴趣, tornado 的异步事件
处理使用了 tornado.gen.coroutine decorator, 要求代码中异步
执行的代码需要添加 yield 关键字在前面.
于是开始补基础, 使用 yield 这个关键字前需要先了解 Generator:

Python Generators 生成器, 参考自 Generators 文档

首先看简单的代码, 计算一个 100w 长度数组的和:

代码目的很明显, 而这里有个问题是, 100w 的整形数据
在内存中也不够用(假设自己的机器是4G内存).

重新调整下代码:

Continue reading