- 浏览: 27117 次
- 性别:
- 来自: 北京
最新评论
-
jeffreydan:
congdepeng 写道写的很清楚 如果禁止垃圾回收 是否要 ...
Python垃圾回收(gc)拖累了程序执行性能? -
wmjie:
感谢分享,现在的机器内存很大的说,用空间换时间应该很划算 :- ...
Python垃圾回收(gc)拖累了程序执行性能? -
wenjinglian:
congdepeng 写道写的很清楚 如果禁止垃圾回收 是否要 ...
Python垃圾回收(gc)拖累了程序执行性能? -
congdepeng:
写的很清楚 如果禁止垃圾回收 是否要考虑堆栈溢出的情况?会不会 ...
Python垃圾回收(gc)拖累了程序执行性能? -
mathgl:
<div class="quote_title ...
Python实现线程池
文章列表
起因
前段时间,在做文本处理的实验时,需要预加载大量的原始数据(100W),在Python中使用的字典(dict)类型负责保存这些数据,很快就开发完成
了一个Demo版,然而程序执行的效率不是那么令人满意,通过使用Python中的profile发现,影响程序执行性能的关键语句就那么几条(用
dict保存加载后原始数据,这是个循环遍历。)
解决问题
既然找到了问题源,于是就勒起衣袖开始动手尝试使用各种解决方案替代效率不佳的,经过多次的反复尝试,调优的效果不太明显,最后一个idea:考虑Python垃圾回收机制的影响了,最后也证明了这个想法的靠谱程度,本文后续部分将分享调优的过 ...
最近在做一些文本处理方面的事情,考虑到程序利用并发性可以提高执行效率(不纠结特殊反例),于是入围的Idea如使用多进程或多线程达到期望的目标,对于进程或线程的创建是有代价的,那么我们是否可以实现一个线程池来 ...
使用python开发时,由于python的开源生态圈非常的给力,对于实现同一个功能,往往在这方面的类库非常多,而开发者也同样面临着如何选择最佳的
类库作为辅助开发的工具。本文将记录本人在使用python处理xml格式数据时测试过的类库,有些类库由于先天不足,无法支持一些特性,涉及的类库或模
块有xml
(python自带)、libxml2
、lxml
、xpath
。
附注:本文处理xml格式的数据的结构如下:
input_xml_string = """
<root>
...
一、糟糕的代码
在使用python编程语言处理查找列表或字典中的某个数据项时,我经常看到这样的代码(省略具体逻辑):
场景一:
try:
data_list = find("condition")[0]
except:
pass
场景二:
try:
dict_list = find("condition")["key"]
except:
pass
以上这些代码虽然能够满足程序的功能,但这都不是最佳的实现方式,原因如下:
1、try捕获异常会造成异常(软中断),会影响性能 ...
“对立志要成为更优秀的程序员的人来说,本书就是他们的
圣经”
“看了这本书的读者,职业眼界会更开阔,应该不会再做无
谓的重复劳动”
以上文字引用<<编程人生>> ...
Twisted
是基于Python语言在网络应用方面的类库,能够很好的兼容Windows与Linux平台,用来开发网络应用方面的软件非常方便。类库中包含一个代理上网的功能,可以用来小爽一把建立代理服务器。
Twisted代理功能的应用:
from twisted.internet import reactor
from twisted.web import proxy, http
class Handler(http.HTTPFactory):
protocol = proxy.Proxy
class OpenProxy(object):
def __ca ...
在编程语言中,一般在语法上都支持代码模块化功能,使之降低耦合度和功能重用,python同样也支持。在python中,模块是以一个python文件
为单位加以封装,并支持以下2种常方式,供第三方使用模块成员。(下面分别说明时,我们假设存在以下python源文
件:main.py,logic.py,model.py且下面提到的当前全局空间是对应main.py)
一、import用法
我们可以通过以下代码导入模块至当前全局空间中(可以通过globals()查看)
import logic,model
使用上面的方法导入,在需要使用该模块内的成员(变量,方法,类...)时,需要从模块名出 ...
在英语词典方面,Linux环境下的软件远不及Win环境下,由于工作一般都在Linux环境下,并且希望在堆码的时候不用离开vim编辑器,于是花了一
点时间写了个翻译的小工具,主要方便我在Linux环境下遇到不认识的英语单词时充当翻译小助手。这个小工具使用Python语言编写完成,其中使用到这
些类库(urllib,BeautifulSoup
),前者主要负责网络通讯方面,后者负责HTML的解析。这也是Python语言生态圈的强大之处,写个这样的小工具,毫不费力。
在线翻译的原理:首先根据用户输入的单词提交给百度词典
,其次读取百度词典返回的数据并解析,最后将处理过的数据显示给用户。以下是 ...
记得迷上Python
的那段时间,同时也关注了IronPython
一段时间,IronPython项目的源代码中就包含了一个简单的HttpServer,因为一直都对Web服务器的运行机制很感兴趣,因此研究了一下源代码并跟踪调试,也让我这服务器开发的门外汉体验了一把。
熟话说,看归看,写归写,写程序远比看懂代码有难度多了,于是乎堆码热情澎湃,堆了一个HttpServer雏形(实现原理的模型)
一、阻塞模型
阻塞模型,当您的程序运行到某条代码时(请求I/O操作),当前进程将等待在调用处,后面的语句将不继续执行,直到引起阻塞的语句执行完毕后,等待出后面
的语句将可继续执行,从这里我 ...
最近花了一天的时间使用Pygtk开发了一个下载器Demo,这个小工具也可以认为是在线升级的原始模型,功能很简单,根据配置文件的Url地址下载数据到本地。
之前一直都没有接触过gtk编程,好在高中时就开始用VB写Winform程序,有 ...