• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            XGuru's Blog

            技術(shù),是一種態(tài)度。關(guān)注:高性能后端技術(shù)/服務(wù)器架構(gòu)/C++/C/LAMP

               :: 首頁 :: 聯(lián)系 :: 聚合  :: 管理
              20 Posts :: 0 Stories :: 93 Comments :: 0 Trackbacks

            公告





            twitter / xoXGuru

            feedsky
            抓虾
            google reader
            鲜果
            QQ邮箱
            九点

            常用鏈接

            留言簿(12)

            搜索

            •  

            最新評論

            閱讀排行榜

            最近重溫《Python源碼剖析》一書,將python基本對象的要點記錄如下
            python 整數(shù)對象
            1.python中的整數(shù)使用c語言中的long類型存儲
            2.python int進行加法會檢查結(jié)果是否溢出,如果溢出則自動轉(zhuǎn)換為pyLongObject對象
            3.python中的文檔無縫集成在語言實現(xiàn)中
            1 = 11
            2 print a.__doc__

            4.小整數(shù)對象完全緩存在內(nèi)存中,其他整數(shù)對象輪流使用一塊內(nèi)存空間
            5.小整數(shù)對象在python初始化中調(diào)用的_PyInt_Init中創(chuàng)建,然后就一直存在著, 直到python虛擬機退出

            python String對象
            1.pyStringObject在創(chuàng)建之后,內(nèi)部維護的字符串不能再改變
            2.intern機制是否只在字符數(shù)組長度0或者1的時候使用? 書中提供的代碼太過于精簡了,沒講清楚,但是看后面的演示結(jié)果,應(yīng)該是所有的字符串都實現(xiàn)了intern機制
            3.字符串連接操作嚴重影響python程序執(zhí)行效率,使用join只需分配一次內(nèi)存,能夠大大提高效率.用法舉例
            "".join(['s1','s2','s3'])

            Python Dict對象
            1.Python中的dict采用hashtable而不是R-B Tree。
            2.采用開放定址法解決沖突。
            3.為保證沖突探測鏈的連續(xù)性,采用偽刪除技術(shù),active對象刪除則設(shè)置為dummy態(tài)
            4.為減少沖突,轉(zhuǎn)載率大于2/3時則改變table的大小,每次增大4倍,如果table中的active態(tài)的元素個數(shù)大于50000時(巨型表),
            則放慢增長速度,每次增長2倍。可以看出Python中dict的查找效率較高,而對于內(nèi)存的使用是省了又省,還考慮了巨型表增長減少倍數(shù)。

            Python List對象
            1.PyListObject類似STL中的Vector。
            2.Python對內(nèi)存的使用十分節(jié)儉,如果list改變的新尺寸不到分配內(nèi)存的1/2,則收縮內(nèi)存.
            3.在Pylist中建插入元素需要逐個移動后面的元素,類似C中的數(shù)組,因此需要盡量避免對中間元素的插入和刪除操作。
            4.STL和PyListObject自動擴容算法對比:個人覺得list改名為array比較恰當(dāng)一些,嘿嘿
            //sgi STL:
            len 
            = (old_size != 0 )?2*oldsize:1
            //(不夠用則擴充兩倍,如果開始為空則設(shè)置為1)
            //Python:
            new_allocated
            =(newsize>>3)+(newsize<9?3:6)
            //(???)
            5.對于增長倍數(shù)的選擇,這里有討論
            http://en.w3support.net/index.php?db=so&id=1100311

            p70書中筆誤 :"allcated/2"應(yīng)改為"allocated/2"

            posted on 2011-07-21 23:16 XGuru 閱讀(2532) 評論(1)  編輯 收藏 引用

            Feedback

            # re: [原創(chuàng)]Python基本對象學(xué)習(xí)筆記 2012-01-04 21:20 laisijia@gmail.com
            ”intern機制是否只在字符數(shù)組長度0或者1的時候使用? 書中提供的代碼太過于精簡了,沒講清楚,但是看后面的演示結(jié)果,應(yīng)該是所有的字符串都實現(xiàn)了intern機制。”我也不是很明白這個問題,但是我在看pyc文件的寫入和讀出的那一章時,發(fā)現(xiàn)string寫入pyc的時候有三種可能,一種是不用intern的string,一種是使用intern的string首次寫入,一種是使用intern的string的非首次寫入。所以不應(yīng)該是所有的字符串都intern了吧。  回復(fù)  更多評論
              


            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            99久久无色码中文字幕| 夜夜亚洲天天久久| 97视频久久久| 久久精品国产欧美日韩99热| 久久国产AVJUST麻豆| 久久成人小视频| 精品久久久久久成人AV| 国产激情久久久久影院| 久久人搡人人玩人妻精品首页| 一级做a爰片久久毛片看看| 无码伊人66久久大杳蕉网站谷歌| 99国产精品久久久久久久成人热| 久久综合综合久久97色| 久久人人爽人人爽人人片AV高清| 精品熟女少妇av免费久久| 久久99精品久久久久久9蜜桃| 久久久久久久波多野结衣高潮| 97热久久免费频精品99| 麻豆久久| 国产一区二区精品久久凹凸| 日产精品99久久久久久| 亚洲午夜无码久久久久小说| 国产91色综合久久免费| 久久亚洲精品无码VA大香大香| 国产真实乱对白精彩久久| 国产亚洲综合久久系列| 国产精品久久久久久五月尺| 久久精品国产精品亚洲艾草网美妙| 婷婷五月深深久久精品| 亚洲精品成人网久久久久久| 精品久久久久久99人妻| 国产精品久久亚洲不卡动漫| 日产精品久久久久久久| 中文字幕精品久久| 无码8090精品久久一区| 久久一本综合| 免费一级欧美大片久久网| 久久久久久亚洲精品不卡| 99久久国产综合精品五月天喷水| 久久99免费视频| 99热都是精品久久久久久|