[转载]用Python的class的 __slots__ 节省9G内存

转载自:用Python的 __slots__ 节省9G内存
我们曾经提到,Oyster.com的Python web服务器怎样利用一个巨大的Python dicts(hash table),缓存大量的静态资源。我们最近在Image类中,用仅仅一行 slots 代码,让每个6G内存占用的服务进程(共4个),省出超过2G来。
这是其中一个服务器在部署代码前后的截图:
bVbDv
physical-memory-usage-history
我们alloc了大约一百万个类似如下class的实例:[......]

继续阅读

机器学习中Nomalize(规范化)和Standardize(标准化)

1. 标准化(Standardize):
标准化给定数据集中所有数值属性(或者分别对每个feature列处理)的值到一个0均值和单位方差的正态分布。

2.规范化(Nomalize):
规范化给定数据集中的所有数值(或者分别对每个feature列处理)属性值,类属性除外。结果值默认在区间[0,1],但是利用缩放和平移参数,我们能将数值属性值规范到任何区间。

CentOS 5.7 编译安装gcc/g++ 4.8.4

CentOS 5.X 自带的 gcc/g++依然是4.1.2,太老了。

本文记录了在CentOS上编译安装gcc 4.8.4的过程。

1、安装依赖三大件
按顺序安装gmp、mpfr、mpc,注意要都是disable share

上述步骤也可以有偷懒的方法:让gcc自动下载并编译。[......]

继续阅读

Google FlatBuffers使用教程

在服务端的开发过程中,我们经常需要完成 复杂数据结构 <–> 二进制数据 之间的序列化、反序列化操作。

与易于阅读的Json相比,Google Protocol Buffers是一个不错的选择。然而,其速度依然比较慢。去年,Google又开源了推出了一款序列化利器:Google FlatBuffers。本文将简介其用法,

1、为什么要用Google FlatBuffers

我就不用复杂的文字描述了,一份官方Benchmark数据就足以说明问题:

Screenshot from 2015-01-22 14:43:24可以看到,与[......]

继续阅读

Python使用urllib2打开含有unicode(中文)的url时报错的问题。

1、报错:

错误如下:

2、解决方法

很简单,对url进行encode即可: