今天一台跑数据中转的服务器cpu满了,这个服务器的主要任务是接收网络数据包,用protobuf解包,取出数据做xxoo的事后,封成一个新的包发给后端服务器。
这个中转服务器是python做的,cpu的主要耗时在对网络数据包频繁的解包封包。也就是protobuf里的ParseFromString(解包)和SerializeToString(封包)函数。因为这两个函数均是python实现的,所以效率比较低。 Continue reading »
今天一台跑数据中转的服务器cpu满了,这个服务器的主要任务是接收网络数据包,用protobuf解包,取出数据做xxoo的事后,封成一个新的包发给后端服务器。
这个中转服务器是python做的,cpu的主要耗时在对网络数据包频繁的解包封包。也就是protobuf里的ParseFromString(解包)和SerializeToString(封包)函数。因为这两个函数均是python实现的,所以效率比较低。 Continue reading »
这段是在《Python高级编程》看到的,觉得很有用,PO上来。
python命令行程序启动时会查找环境变量PYTHONSTARTUP,并且执行该变量中所指定文件里的程序代码。有些linux发行版本提供了一个默认的启动脚本,它通常放在用户的主目录下,文件名是.pythonstartup。按Tab键时自动补全内容和命令历史。 Continue reading »
22号到25号参加了InfoQ 组织的企业开发交流会。QCon Beijing >>
整体感觉是,并没有想象中的好,不是每个演讲都有干货,不过很大的收获是在线下去了推友会,认识了几位大牛。(虽然大牛们都不记得俺~)
总结一下听的几个session,不然等ppt发下来,估计都忘的差不多了。(现场wifi很不稳定~批一下~)
要使用twisted做server部分的代码,一定离不开Protocol和Factory两个类,下面是个简单的例子: