成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳細剖析Python源代碼編制過程

開發 后端
下面文章著重介紹下什么是Python源代碼,但是目前我正在看Python的源代碼,而且Python和Java的GC都是開發語言的一種。

Python語言中提供的re模塊能支持正則表達式,還提供SGML,XML分析模塊,大多數的開發人員運用Python源代碼進行XML程序的開發和運行,在這里拿出來和大家分享一下。

有著很多相似點,所以就用這個順序了,Python的GC章節,我打算更多地著眼于實現和我的疑問,Java的GC章節,更多放在使用上。Python是走多種GC技術路線相結合的路線的,我以為有可取之處。

首先Python采用了原始的Ref Counting技術而對于引用計數解決不了的循環引用,Python源代碼也采用了Mark-Sweeping進行GC。這樣似乎有兩個好處,大量的內存回收。分攤給了引用計數上。

減輕了Mark過程的負擔,不會造成程序的停頓,而又可以真正的消除循環引用等造成的真實的內存泄露。PyObject_GC_New將會調用_PyObject_GC_Malloc,其中前者的返回值。

關注的是對象本身,而后者關注的是內存。實際上,在一塊剛剛分配的內存上,對象和它鎖在的內存有著如下的關系:從對象創建的過程來看,Python有如下幾個關鍵的C實現函數和結構:

  1. typedef union _gc_head {  
  2.     struct {  
  3.         union _gc_head *gc_next;  
  4.         union _gc_head *gc_prev;  
  5.         Py_ssize_t gc_refs;  
  6.     } gc;  
  7.     long double dummy;  /* force worst-case alignment */  
  8. } PyGC_Head; 

其實,我本人對這個結構稍有失望,因為要回收一塊內存,所占用的資源實在是太多了。可能是我太小家子氣了,我覺得8個字節也許剛剛好。老實說,在我心中,已有一個初步的想法,一個對象的管理內存,完全僅僅需要8個字節足夠了,而且整個GC的過程,不需要拷貝和壓縮。

當我看代碼的時候,不知道是我對某些技巧不了解,還是LOCK就沒有實現,我感覺Python的malloc和free擺放著一對兒沒有用處的LOCK和UNLOCK,【Python 2.5.2】,不知道是不是因為我沒有實際調試的緣故,還沒有發現這個宏的玄機。

老實說,我跟內存泄露做了好多年的斗爭了,這次又從中學到了很多東西(也有從其他的資料),結合我曾經寫過的Ref<T>類中使用的內存池,這次構造了一個全新的內存池,希望可以有用武之地。
注:

【1】我沒有考證過最初的Python源代碼,但是印象里最初的Python只有引用計數機制,特別是Ruby 1.9才引入垃圾回收,而以往是采用引用計數技術的。

【2】簡直是迫使我查看JVM的源代碼了,但是到了64位的平臺上,這個結構可能發生更大的變化。

【3】等到我完成了代碼,才能兌現這段話,到時候我會Open Source的。

【編輯推薦】

  1. 有關Python系統文件進行介紹指導
  2. 如何正確的使用Python函數
  3. 對Python 構建工具進行詳細介紹分析
  4. PythonAndroid淺析Python優勢所在
  5. 如何使用Python模塊解析配置文件?
責任編輯:chenqingxiang 來源: 騰訊科技
相關推薦

2010-02-23 10:14:29

Python 源代碼

2010-02-26 16:05:19

Python 源代碼

2010-03-01 10:39:18

Python源代碼

2010-03-12 14:28:45

Python if語句

2010-02-05 18:00:18

Android源代碼

2010-01-12 15:03:33

C++代碼

2024-05-16 10:30:54

HiveSQL任務

2010-01-11 16:59:50

C++源代碼

2011-08-01 16:42:24

ibmdwNFS文件系統

2010-02-23 11:22:15

WCF跟蹤調試

2010-03-18 14:46:18

Java SynDem

2010-02-23 10:32:20

Python 腳本

2010-06-07 11:30:24

Hadoop源代碼

2010-03-16 14:48:02

云計算

2012-02-20 14:47:08

JavaPlay

2010-09-17 13:32:22

JVM.dll

2010-03-17 17:20:15

Java class線

2009-08-27 17:14:36

C# Socket

2009-09-02 10:26:23

JSP和BEAN

2009-09-29 10:00:40

Spring AOP框
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品一区在线观看 | 午夜精品一区二区三区在线观看 | 一区二区三区在线播放 | 亚洲精品久久久久国产 | 91视频亚洲 | 自拍偷拍中文字幕 | 久久精品日产第一区二区三区 | 国产精品1 | 久久一二 | 成人欧美一区二区 | 精品国产乱码久久久久久88av | 久久成人精品 | 一久久久 | 在线观看中文字幕视频 | 二区国产| 女生羞羞网站 | 男女免费在线观看视频 | 亚洲天堂av网 | 日本一道本视频 | 日韩电影a | 伊人狠狠 | 亚洲小视频在线观看 | 成人一级视频在线观看 | 亚洲欧美激情精品一区二区 | 欧洲色综合 | 欧美日本一区 | 国产成人免费视频网站高清观看视频 | 日本精品一区二区三区在线观看视频 | 91视频在线 | 国产精品久久久久久 | 国产黄色一级片 | 日韩精品久久一区二区三区 | 午夜a√ | 九九综合九九 | 久久av资源网| 99视频网站| 国产精品一区二区三区在线 | av大全在线观看 | 国产成人高清 | 粉嫩粉嫩芽的虎白女18在线视频 | 久www|