白菜
洞察力+实践 :)


pypy video index。许多视频的bt种子,希望感兴趣的朋友来一起加速 :) - [Python pypy ]

PyPy is an implementation of the Python_ programming language written in
Python itself, flexible and easy to experiment with.  Our long-term goals are
to target a large variety of platforms, small and large, by providing a
compiler toolsuite that can produce custom Python versions.  Platform, memory
and threading models are to become aspects of the translation process - as
opposed to encoding low level details into the language implementation itself.
Eventually, dynamic optimization techniques - implemented as another
translation aspect - should become robust against language changes.

PyPy是一个用python本身编写的python语言实现,灵活且容易在它上面
实验。我们长期的目标是针对大范围的多种平台,不管小的大的,通过
提供一个编译器工具集来生产相应的python版本。平台、内存和线程模
型将作为转换过程中的方面-与之相反的是将底层细节编码到语言实现
本身中去。最终,动态优化技术-实现为另一个转换方面-应该当语言
变化时是完善的。

........



Evolution 一个开放式的虚拟生态环境 - [生活 Python 呓语 ]
http://wiki.woodpecker.org.cn/moin/evolution
    断断续续地还没做完的一个小东西,我觉得是个很有意思也很有意思的一个东西,可惜这一段时间确实无法静下心来,这个有两层意思:不能安心写程序,也没法安心复习考研。
    我也不知道今天发到blog上来是什么意思,也许是看这里太冷清了,也许想把这东西停一停了。希望有感兴趣又有时间的朋友看到吧,可以把它继续下去。但愿毕业的时候我还能记得有这么一个未完成的东西 :)


小程序发布了第一版 呵呵 大家多捧场啊 - [Python pygame sdl agent 学游戏 ]
http://wiki.woodpecker.org.cn/moin/evolution

自以为还有点意思的 Action模式的一个变种 - [Python 设计模式 ]



对python的垃圾回收机制的较完整描述 - [Python 垃圾回收 ]

我是个懒人啊,老早就研究过一小点gc,但是一看c语言代码就郁闷了。

今天下午把一直想试试的leo弄下来玩,顺便下下来pythonGC.leo,一会就把整个脉络弄清楚了,leo在阅读复杂代码方面确实不错,其他的好处,挖掘中...,呵呵

http://wiki.woodpecker.org.cn/moin/python_ref_circle_gc



有感于django的admin功能 - [Python web django ]
正在用django开发一个简单的新闻发布系统,于是接触了这个admin功能。

在讨论框架与库之间种种关系的时候,这个admin功能应该是个很好的例子。它集中体现了框架的特点:易用却不灵活。

易用与灵活永远是此消彼长的关系,要两者兼顾是太困难了。通常认为框架易用而库灵活。django的admin功能将框架的特点发展到极端,那就是极好用和极不灵活。

通常——尤其是对于简单的应用和新手——好用是比较重要的,灵活性通常只要达到了一个界限,足够就行,但却是越好用越好。但是如果灵活性没有达到这个限度,那你很可能会发现你的应用开发变成了一个噩梦。

django的admin功能应该还需要大量的改进吧,因为其灵活性对大多数实际应用都还远远远远不够的。


Library or Framework -- 对web开发的思考 - [呓语 Python web ]

        库使得开发变得灵活,而框架和工具快速开发的源泉。

........

        框架应该只是表达了设计者对如何开发web应用(或者只是某一类web应用)的一种看法。具体功能点由可重用的框架无关的库提供,不过要求所有的功能都由框架无关的库来提供可能也太苛刻了,毕竟框架有自己的一套思维方式,有自己的内部接口和数据类型。不过一些通用的功能点还是应该尽量设计成框架无关的库的。

........

        我想这个就是web开发的本质所在了,就象消息循环之于桌面开发。而我们上面所讨论的框架和应用程序应该都属于这个框架最右边一块。虽然也有框架比如cherrypy提供filter的概念似乎和WSGI描述的中间件很象,但是我还是觉得WSGI描述的中间件绝对是框架无关的,这是两个层面上的概念。而库是可以存在于任何一个层面的。

.........

        http请求从到达服务器的这一刻便开始向着纵深的方向走去,沿途被各种filter分析加工,最后到达某个方法(通常对应某个页面),在这个末端开发者思维开始横向延伸,把页面分解成一块一块(又模版系统完成),然后访问数据库,每一块取得其数据再整合成完整页面并返回,返回的数据沿纵身方向往回走被filter加工直至最后到达客户端。



[翻译]PEP333——Python Web Server Gateway Interface v1.0 - [翻译 Python ]
[翻译]PEP333——Python Web Server Geteway Interface v1.0

未完成...


垃圾回收 - [垃圾回收 Python ]

垃圾回收趣史 介绍垃圾回收历史和各种主流算法

Garbage Collection for Python介绍python使用的"轻便式"垃圾回收方法

Sensible Sanitation -- Understanding the IBM Java Garbage Collector 详细讲解Java使用的垃圾回收策略

.net使用的方式貌似和java类似

基本上我对垃圾回收的认识就来自上面几篇文章和一点点对python源码的阅读了.

我最后再稍微总结一下 python为什么使用引用计数法:..........


在学校里面生活没有压力,做事情总是虎头蛇尾,稍微整理一下,放出来再说了。


python中的垃圾回收算法 - [Python 垃圾回收 源码分析 ]

自从java把垃圾回收的概念发扬光大,现在介绍垃圾回收算法的文章已经很多了,这篇文章的目的是想结合python源码分析python实现的GC算法.

简单得说,垃圾回收就是两个步骤:找出垃圾,回收垃圾.回收比较简单,直接free掉就可以.关键在于怎么找到垃圾.

找垃圾的算法有两种,一个是引用计数法,这是python使用的,引用计数法比较好理解,接触过com的人肯定记得他,用一个整数保存当前对内存块引用的数目,找垃圾就只需要找那些引用计数为0的就可以,唯一的缺陷就是著名的引用循环问题,当然python2.0以后解决了这个问题;另一种就是tracing算法了,.net和java使用的都是这个,该算法要求维护固定数目的几个"根","根"保存着对其他内存块的引用,当然普通内存块也可以保存其他内存块的引用,比如容器.这样内存块和之间的引用就构成了一棵树,所有分配的内存块都在这棵树中,删除一个内存块删除对他的引都是有用的,用就可以.找垃圾的时候不是很方便,每次从"根"开始遍历这棵树,能遍历到的剩下的都是垃圾,这个时候如何清除垃圾又有两种选择,详细情况见... 另外generation算法和adaptive算法都是通用的,详细情况也不一一赘述了.

上面说了.net和java都选择tracing算法,为什么python却选择引用计数法呢.我觉得是这样的: tracing算法需要维护一棵或几棵固定的内存树,这样就使得内存必须统一进行分配,而python是个很开放的东西,为了允许用户编写自己的内存分配方式




Page共1页 1
日历

搜索

Tags
>>More

最近更新

最新评论

存档



我的链接

联系我
给我写邮件
有事您q我 最好用gtalk联系yi.codeplayer@gmail.com
点击量
Total: