转载自:用Python的 __slots__ 节省9G内存
我们曾经提到,Oyster.com的Python web服务器怎样利用一个巨大的Python dicts(hash table),缓存大量的静态资源。我们最近在Image类中,用仅仅一行 slots 代码,让每个6G内存占用的服务进程(共4个),省出超过2G来。
这是其中一个服务器在部署代码前后的截图:
physical-memory-usage-history
我们alloc了大约一百万个类似如下class的实例:[......]
Category Archives: Python
Python使用urllib2打开含有unicode(中文)的url时报错的问题。
1、报错:
import urllib2
url = u"http://www.baidu.com/wd=测试"
urllib2.urlopen(url).read()
错误如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen
r[......]
Python中使用pack/unpack编码字节数据
在Python中,是没有int, long这些c系的强类型的,但是有的时候,我们需要按照字节规则,生成这样的数据。
例如:生成一份网络序的,char+unsigned long数据(4+8字节):
from struct import pack
pack('!BQ', 100, 1000)
'd\x00\x00\x00\x00\x00\x00\x03\xe8'
其中,第1个!表示为网络字节序。
BQ是占位符号,分别表示8bit的unsigned char和64bit的unsi[......]
Python Sort多值排序
假设使用lambda函数
s = sorted(s, key = lambda x: (x[1], x[2]))
如上所示,返回一个tuple,其中[0]是第1个排序key,[1]是第2个。[......]
[转]使用Fabric部署网站应用
转载自:《使用Fabric部署网站应用》
以前一直用rsync同步代码到服务器,这种山寨方法用一次两次还可,每天部署10次就麻烦了,最近抽空研究了一下Fabric,发现这个东西部署起来简直太爽了。
Fabric是一个用Python开发的部署工具,最大特点是不用登录远程服务器,在本地运行远程命令,几行Python脚本就可以轻松部署。
花10分钟写了一个部署脚本fabfile.py(名字不能变),放到工程目录下:
#!/usr/bin/env python
# -*- coding:[......]