Python運行效率優(yōu)于C語言的功能簡介
C語言和Python運行效率你在實際應用的過程中前者與后者你更喜歡應用那個?本文要介紹的是C語言與Python運行效率對比,突出前后者的不同以及在相關應用過程中的相關功能的介紹。以下是內(nèi)容介紹。
Python是個非常流行的解釋型腳本語言。C是一個非常流行的編譯語言。由于其編譯的性質,導致C一般比Python要快,但是它是更底層的。相對的,Python編程更加快速和簡單。譯者注:在目前最權威的TIOBE編程語言排行榜上,Python運行效率和C語言分處榜上第6和第2的高位,在腳本語言和編譯語言中分別坐著第二把交椅(***把交椅分別是PHP和Java)。
問題在于,Python程序(在沒有輸入的情況下)運行時所額外花費的時間相對C而言是否更加劃算,以及運行時所用的時間是否比編程時間更加重要。
系統(tǒng)程序
我決定建立一個簡單的程序,該程序可以處理以下公式的計算:
- { x + y = 14
- { x^2 + y^2 = 100
我很快用Python寫了一遍,找到了答案。然后,我將其翻譯成C語言。我知道,在C語言中的同一程序會花費比Python運行效率更多一些的代碼,但是這并非是我所注意的問題。在繼續(xù)之前,讓我們看看代碼:
- Python:
- x = 1
- while x <= 14:
- y = 14 - x
- print str(x) + "|" + str(y)
- if x**2 + y**2 == 100:
- print "match"
- xx = x + 1
- C:
- #include (<)stdio.h(>)
- int main()
- {
- int x, y, t;
- for (x = 1; x <= 14; x++) {
- y = 14 - x;
- printf("%d|%d\n", x, y);
- if ((x*x) + (y*y) == 100)
- printf("match\n");
- }
- return 0;
- }
我總是聽說C語言永遠是最快的語言之一。在命令端口運行這兩個程序,我并沒看出這兩個的運行速度有任何差別。所以我打開Ubuntu的命令端口,并輸入如下代碼:
- time ./a.out
(time指令,緊跟著可以脫離time指令而單獨運行的普通指令,運行指令并計時——很明顯,這里的測試對象是C程序。)我得到0.001秒real time(真實用時),而user time(用戶用時)和system time(系統(tǒng)用時)都是0。接下來是Python運行效率:
- time python system.py
結果有些嚇人:0.017秒real time,0.012秒user time,0.004秒system time。當然了,real time的差別畢竟只有16毫秒,不過在長時間運行大量運算的大系統(tǒng)下這個差別就很明顯了。
百萬程序
我決定將這個設想付諸現(xiàn)實。我寫了另一個程序,這個程序將0到1000000之間的所有整數(shù),包括0,依次print輸出。當然這和我之前提到的大量運算的情況還是不同的,不過還是給了計算機比較多一些需要print的內(nèi)容。
【編輯推薦】