易截截图软件、单文件、免安装、纯绿色、仅160KB

[原创]Python内存泄漏查看器实现

[原创]Python内存泄漏查看器实现
by AKara 2009-04-23 @ http://blog.csdn.net/akara @ akaras@163.com
   
---------------------------------------------------------------------
  为更好定位Python内存泄漏情况,写了一个新的Python内存泄漏查看器模块。
模块有如下功能:
  * 将所有对象按框图引用关系输出png图片
  * 可调整输出每引用层节点的最大数量
  * 可调整泄漏对象往上引用的层次数量
  * 各种类型对象用唯一的颜色标识
  * 泄漏对象在原颜色上染红色
  * 泄漏对象相关的link用红色线条/红色文字
  * 用<>特别标识Python对象的特殊结构link文字
  所以,根据上图,需要去除内存泄漏要做的工作就是【消除红色框】,
最简单的方式是【消除所有红色link】,但这显然不是最有效的方法————
最有效的方法是尽量切断"顶部"的link(怎么才算"顶部",依赖功能逻辑判定)。
---------------------------------------------------------------------
  Python提供了gc.get_referrers方法来获得一个对象的引用者列表,很大程度
上,这已经完成了模块的50%的功能了:因为只要while循环取到get_referrers
并入出双端队列,直至处理为空即可。
  但是在输出对象引用关系的有向边信息时,需要仔细地对types模块中所
定义的各种类型的Python对象进行区别对待,甚至有些Python的内部对象类型
连types模块中都没给出,或连Python Manual手册上都不多说一句 :( :
  (1)CellType: 一种用于指向upvalue(Lua中这样叫,就这样称呼吧)的对象,
       它可被一个或多个clousure的free var tuple引用。虽然Python不希望
       使用者注意这个内部的对象类型,但是可以自己动手取得:
       CellType = type((lambda x: lambda: x)(1).func_closure[0])
       
  (2)NewStyleClassType: 就是new style class(和old style class相对的)。
       讽刺的是Python从引入new style class以来就提倡摒弃old style class
       (无论从性能上,方便性上,功能多样性上new style class均胜),但是
       


相关文档:

转帖:Python2.6 下安装 mysql (Windows xp)

转自:
http://hi.baidu.com/feng2211/blog/item/8b86b6d9816a3f2710df9b79.html

http://i.19830102.com/archives/164
Python 版本:2.6
下载地址:http://www.python.org/download/releases/2.6.1/
下载msi文件并安装
MySQLdb版本: MySQL-python-1.2.2.win32-py2.6.exe
下载地址:http://home.netimperia.com/ ......

用python实现crc32求字符串校验码


转帖:
http://blog.csdn.net/wyingquan/archive/2008/12/20/3561094.aspx
用python自带的binascii模块计算字符串的校验码,出来的是负值,与用c写的程序得出的校验码不一样,所以就研究了一下。发现别人用的python3.0版本binascii模块计算出的crc32校验码是我想要的,没办法只好自己用python实现一下crc32的算法了。发 ......

Python异常处理体系简介

Python内建异常体系结构
BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StandardError
|    +-- BufferError
|    +-- ArithmeticError
|    |    +-- FloatingPointError
|    |    +-- OverflowError
|   ......

python绘制螺旋线

#coding=utf-8
from math import sqrt,cos,sin
import Image, ImageDraw
class SpireShape(object):
    def __init__(self, draw):
        self.draw = draw
        self.line_width = 1
     & ......

python中编码转换

当python中间处理非ASCII编码时,经常会出现如下错误:
UnicodeDecodeError: 'ascii' codec can't decode byte 0x?? in position 1: ordinal not in range(128)
0x??是超出128的数字,python在默认的情况下认为语言的编码是ascii编码,所以无法处理其他编码,需要设置python的默认编码为所需要的编码。
一个解决的方案是 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号