偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

全新升級(jí)的Python 3.1版本簡(jiǎn)介

開發(fā) 后端
Python核心開發(fā)人員更新發(fā)布了新的版本Python 3.1,可以說Python 3.1版本就是Python 3.0的一次升級(jí),為廣大的開發(fā)人員帶來了許多的樂趣。

在新推出的Python 3.1版本中,我們用一組插件來實(shí)現(xiàn)一些具有統(tǒng)一接口的功能,我們使用Python來代替動(dòng)態(tài)鏈接庫形式的插件,他的重點(diǎn)與我這一專欄的觀點(diǎn)有些相反,它提供了 Python 和 Lisp 之間非常好的常規(guī)比較。

同時(shí)在性能方面也有所改善。在上一篇中,我們?yōu)樽x者詳細(xì)介紹了Python 3.1版本在標(biāo)準(zhǔn)程序庫方面的變化,本文則要為讀者介紹新版本在性能方面的改善。在Python 3.1的開發(fā)計(jì)劃中,很大一部分都是關(guān)于性能的。

那么這一版本發(fā)布后,都是哪些性能得到改善呢?下面我們將一一加以介紹。Python 3.0曾以使用Python實(shí)現(xiàn)了一個(gè)新的I/O庫而引以為豪,但是其性能大家可想而知——和您估計(jì)的一樣,非常的低。

Python 3.1版本中,人們利用C語言重新實(shí)現(xiàn)了此程序庫,所以它的性能得到了極大的提升,大概快了2到20倍。為此。我們寫了一段代碼:向一個(gè)文件中寫入5,000,000字節(jié)的內(nèi)容,連續(xù)寫入10次,然后計(jì)算其平均耗時(shí)。我們分別在Python 2.5、2.6、3.0和3.1下運(yùn)行該代碼,然后比較其結(jié)果。

看到這樣的結(jié)果,是不是既讓人感興趣又讓人很困惑呀:對(duì)于這個(gè)向文件逐字節(jié)寫入的基本I/O任務(wù),不同Python版本之間的性能差別是不是很明顯呢?Python 3.0的性能有了很大的下降。

這是可以理解的,原因前面已經(jīng)提過。不過,Python 2.6的性能比Python 2.5低了50%,而Python 3.1的性能有
幾乎是Python 2.5的兩倍。

從中我們可以了解到些什么呢?首先,對(duì)于該任務(wù)Python 3.0的性能是慘不忍睹的,它寫入字符的耗時(shí)是寫入字節(jié)的兩倍,并且?guī)缀醣?FONT size=+0>Python 3.1的性能地了二十倍。 Python 2.5、2.6和3.1所用的時(shí)間大體相當(dāng)。

Python 2.x升級(jí)到Python 3.0的時(shí)候,Unicode的處理有了明顯的改善。以下程序?qū)?duì)一個(gè)存放在緩沖區(qū)的1,000,000個(gè)希伯來語單詞“shalom”在UTF-8和UTF-16之間來回進(jìn)行編碼和解碼處理。此緩沖區(qū)總大小為五百萬字節(jié)。

  1.  from __future__ import with_statement  
  2.  
  3.   import sys  
  4.  
  5.   import time  
  6.  
  7.   def test_encode_decode():  
  8.  
  9.   shalom = ' \u05dd\u05d5\u05dc\u05e9' 
  10.  
  11.   text = shalom * 1000000  
  12.  
  13.   start = time.time()  
  14.  
  15.   texttext_utf8 = text.encode('utf-8')  
  16.  
  17.   texttext_utf16 = text.encode('utf-16')  
  18.  
  19.   assert text_utf8.decode() == text  
  20.  
  21.   assert text_utf16.decode('utf-16') == text  
  22.  
  23.   end = time.time() - start  
  24.  
  25.   print (shalom, end)  
  26.  
  27.   return end  
  28.  
  29.   test = test_encode_decode 
  30.  
  31.   if __name__=='__main__':  
  32.  
  33.   times = [test() for i in range(10)]  
  34.  
  35.   times.remove(max(times))  
  36.  
  37.   times.remove(min(times))  
  38.  
  39.   print('Average:', sum(times) / len(times)) 

Python 3.1版本下運(yùn)行此程序的時(shí)候,兩種的速度大體相當(dāng);然而,Python 3.0卻要快得多(大約快了5-6倍),而Python 3.1則要比Python 2.x快了近八倍,比Python 3.0快40%左右。

【編輯推薦】

  1. 有關(guān)Python系統(tǒng)文件進(jìn)行介紹指導(dǎo)
  2. 如何正確的使用Python函數(shù)
  3. 對(duì)Python 構(gòu)建工具進(jìn)行詳細(xì)介紹分析
  4. PythonAndroid淺析Python優(yōu)勢(shì)所在
  5. 如何使用Python模塊解析配置文件?
責(zé)任編輯:chenqingxiang 來源: 51cto
相關(guān)推薦

2012-05-31 10:45:45

集客買

2009-08-02 08:46:16

Windows 7升級(jí)計(jì)劃版本升級(jí)

2012-11-16 09:50:32

Windbg

2022-09-12 21:10:42

LinkerdKubernetes

2012-05-28 15:25:40

微瘋客棧

2022-04-19 11:23:26

release3.1子系統(tǒng)鴻蒙

2011-10-24 22:41:15

Linux KerneFreeBSDDell

2011-05-18 09:23:00

Chrome OS

2014-11-28 14:54:25

歐朋瀏覽器

2009-09-17 17:45:12

Android 1.6DonutAndroid

2010-07-29 12:44:30

廣域網(wǎng)加速網(wǎng)絡(luò)優(yōu)化深信服科技

2010-02-23 17:44:48

Python 3.0

2011-05-11 08:46:54

HoneycombAndroid谷歌

2011-03-22 16:23:31

Firefox 4.0升級(jí)

2012-04-19 10:44:25

imo即時(shí)通訊

2009-12-18 09:15:03

2010-03-01 18:07:53

Python語言

2012-03-06 13:45:43

JavaJActor

2010-06-08 09:45:27

openSUSE 11

2012-05-07 23:45:54

FantomJavaJVM
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)