10 2015 档案

摘要:Libev中的超时监视器ev_periodic,是绝对时间定时器,不同于ev_timer,它是基于日历时间的。比如如果指定一个ev_periodic在10秒之后触发(ev_now() + 10),然后将系统时间调整为去年的一月一号,则该定时器会在一年后才触发超时事件。(ev_time... 阅读全文
posted @ 2015-10-31 11:30 gqtc 阅读(1186) 评论(0) 推荐(0)
摘要:Setuptools是Python Distutils的加强版,使开发者构建和发布Python包更加容易,特别是当包依赖于其他包时。用setuptools构建和发布的包与用Distutils发布的包是类似的。包的使用者无需安装setuptools就可以使用该包。如果用户是从源码包开... 阅读全文
posted @ 2015-10-30 23:27 gqtc 阅读(1089) 评论(0) 推荐(0)
摘要:Libev中的超时监视器ev_timer,就是简单的相对时间定时器,它会在给定的时间点触发超时事件,还可以在固定的时间间隔之后再次触发超时事件。 所谓的相对时间,指的是如果你注册了一个1小时的超时事件,然后调整系统时间到了去年的一月份,该超时事件依然会在1个小时之后... 阅读全文
posted @ 2015-10-25 11:05 gqtc 阅读(1182) 评论(0) 推荐(0)
摘要:一:代码流程 在Libev中,启动一个IO监视器,等待该监视器上的事件触发,然后调用该监视器的回调函数。整个的流程是这样的: 首先调用ev_default_loop初始化struct ev_loop结构; 然后调用ev_io_init初始化监视器中的属性,... 阅读全文
posted @ 2015-10-25 10:27 gqtc 阅读(896) 评论(0) 推荐(0)
摘要:一:简介 尽管Python标准库已经支持很多的功能,但是有时还是会需要以第三方模块的形式添加新的功能到Python中。 在最简单的场景中,是你要安装的模块,已经有了针对你的平台的安装版本,因此只需要像安装其他软件一样安装他们即可。比如针对Windows用户的安装程序,... 阅读全文
posted @ 2015-10-23 21:04 gqtc 阅读(2888) 评论(0) 推荐(0)
摘要:当Python执行import语句时,它会在一些路径中搜索Python模块和扩展模块。可以通过sys.path查看这些路径,比如:>>> import sys>>> sys.path['', '/usr/lib/python2.7/site-packages/demo_nova_h... 阅读全文
posted @ 2015-10-23 20:44 gqtc 阅读(2341) 评论(0) 推荐(0)
摘要:Distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以是用C/C++写的扩展模块,或者可以是Python包,包中包含了由C和Python编写的模块。 一:Distutils简介1.1概念和术语 对于模块开发者以及需... 阅读全文
posted @ 2015-10-19 22:30 gqtc 阅读(1328) 评论(0) 推荐(0)
摘要:Libev中在管理定时器时,使用了堆这种结构,而且除了常见的最小2叉堆之外,它还实现了更高效的4叉堆。 之所以要实现4叉堆,是因为普通2叉堆的缓存效率较低,所谓缓存效率低,也就是说对CPU缓存的利用率比较低,说白了,就是违背了局部性原理。这是因为在2叉堆中,对元素的... 阅读全文
posted @ 2015-10-17 13:15 gqtc 阅读(389) 评论(0) 推荐(0)
摘要:在Libev中,使用poll作为backend时,涉及到下面几种数据结构:int *pollidxs;int pollidxmax;struct pollfd *polls;int pollmax;int pollcnt; polls就是struct pollfd结... 阅读全文
posted @ 2015-10-11 13:37 gqtc 阅读(377) 评论(0) 推荐(0)