您好,登錄后才能下訂單哦!
本篇內容介紹了“Python 3.0有哪些新功能”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
在Python 3.1的開發計劃中,很大一部分都是關于性能的,那么這一版本發布后,都是哪些性能得到改善呢?下面我們將一一加以介紹。Python 3.0曾以使用Python實現了一個新的I/O庫而引以為豪,但是其性能大家可想而知——和您估計的一樣,非常的低。
在Python 3.1中,人們利用C語言重新實現了此程序庫,所以它的性能得到了極大的提升,大概快了2到20倍。為此,我們寫了一段代碼:向一個文件中寫入5,000,000字節的內容。連續寫入10次,然后計算其平均耗時。我們分別在Python 2.5、2.6、3.0和3.1下運行該代碼,然后比較其結果。
from __future__ import with_statement import sys import time if sys.version_info[0] == 3: exec("c = b'X'") else: c = 'X' def test_write_speed(): start = time.time() with open('1.txt', 'wb') as f: for i in range(5000000): f.write(c) end = time.time() - start print (end) return end times = [test_write_speed() for i in range(10)] times.remove(max(times)) times.remove(min(times)) print('Average:', sum(times) / len(times))
看到這樣的結果,是不是既讓人感興趣又讓人很困惑呀:對于這個向文件逐字節寫入的基本I/O任務,不同Python版本之間的性能差別是不是很明顯呢?Python 3.0的性能有了很大的下降。
這是可以理解的,原因前面已經提過。不過,Python 2.6的性能比Python 2.5低了50%,而Python 3.1的性能有幾乎是Python 2.5的兩倍。對于同樣的測試,如果文件作為文本文件打開(即把wb換成w),并且向文件寫入字符串“1”而非寫入字節,如下:
* Python 2.5 - 3.0146874487400055 * Python 2.6 - 4.4676837027072906 * Python 3.0 - 33.0755852461 * Python 3.1 - 5.7733258903
對于同樣的測試,如果文件作為文本文件打開(即把wb換成w),并且向文件寫入字符串“1”而非寫入字節,如下:
* Python 2.5 - 3.1337025165557861 * Python 2.6 - 2.9250392615795135 * Python 3.0 - 68.4243619442 * Python 3.1 - 3.43869066238
“Python 3.0有哪些新功能”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。