10 2014 档案
摘要:python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱。 而将来的工具链组合非常简单:pip + distutils2。 1、distutils:Python 自带的基本安装工
阅读全文
摘要:Lua 与 C 的交互Lua是一个嵌入式的语言,它不仅可以是一个独立运行的程序,也可以是一个用来嵌入其它应用的程序库。C API是一个C代码与Lua进行交互的函数集,它由以下几部分构成:1、 读写Lua全局变量的函数;2、 调用Lua函数的函数;3、 运行Lua代码片段的函数;4、 注册C函数后可以...
阅读全文
摘要:标准os库os.rename(oldname, newname)文件重命名;os.remove(filename)删除一个文件os.execute(cmd)os.execute可运行一条系统命令,类似于C语言的system函数。os.execute("mkdir /tmp/cq")os.exit(c...
阅读全文
摘要:标准string库基础字符串函数string.len(s)返回一个字符串的长度,例如print(string.len("hello world")) -- 11string.rep(s, n)返回一个新的字符串,该字符串是参数s重复n次得到的结果,例如print(string.rep("go", 3...
阅读全文
摘要:弱引用table与python等脚本语言类似地,Lua也采用了自动内存管理(Garbage Collection),一个程序只需创建对象,而无需删除对象。通过使用垃圾收集机制,Lua会自动删除过期对象。垃圾回收机制可以将程序员从C语言中常出现的内存泄漏、引用无效指针等底层bug中解放出来。我们知道P...
阅读全文
摘要:Lua 之面向对象编程Lua并不是为面向对象而设计的一种语言,因此,仅从原生态语法上并不直接支持面向对象编程,但Lua的设计中仍然包含了很多面向对象的思想,理解它们也更有助于理解Lua自身的一些高级机制。对象Lua中的table就是一种对象,它可以有函数字段。在面向对象(Object Oriente...
阅读全文
摘要:Lua 之数据结构数组通过整数下标访问的table中的元素,即是数组,下标默认从1开始。一个创建二维数组的例子:mt = {}for i = 1, 10 do mt[i] = {} for j = 1, 10 do mt[i][j] = 0 end end链表l...
阅读全文
摘要:Lua之metatable一、元表Lua中的每个值都有一套预定义的操作集合,也可以通过metatable(元表)来定义一个值的行为,metatable包含了一组meatmethod(元方法)。Lua中的每个值都有一个metatable,table和userdata可以有各自独立的metatable,...
阅读全文
摘要:协程的原理和应用 在一些高并发应用场景中如果使用多线程(每个请求一个线程),每个请求的大部分时间可能都是阻塞在IO上,会带来很多线程切换的开销(C/C++ 线程的切换是由内核控制的);多线程以外,一般有2种其它方案,一个是用IO多路复用(如 Nginx、Redis都用 epoll 实现非阻塞网络IO
阅读全文
摘要:LevelDB库简介一、LevelDB入门LevelDB是Google开源的持久化KV单机数据库,具有很高的随机写,顺序读/写性能,但是随机读的性能很一般,也就是说,LevelDB很适合应用在查询较少,而写很多的场景。LevelDB应用了LSM (Log Structured Merge) 策略,l...
阅读全文

浙公网安备 33010602011771号