Python の最大の欠点はパフォーマンスが低いことであることは誰もが知っています。それがどれほど悪いかについての具体的なデータはインターネット上にありません。今日テストをしました。
まず最初に、この単純なテストは、配列の作成と統計の時間のかかる比較にすぎないことを述べておきます。私は、配列の操作が Python の強みであると考えていました。大きな違いはないはずですが、結果は衝撃的です: Python は Java よりも配列の作成に 14 倍以上時間がかかり、統計には Java の 24 倍以上の時間がかかります。
ハードウェア環境:
Win8.1 64ビット、i5 4670Kウルトラ~4.2GHZ、メモリ8G
ソフトウェア:
python 3.4、JDK 1.6
Phton:
import time c_rows=10000 c_cols=10000 lvStart=time.time() #print(lvStart) # 建立 [10000][10000]的整数阵列 lvArr=[[] for row in range(1,c_rows+1,1)] lvRows=len(lvArr) for row in range(0,lvRows,1): lvArr[row]=[col for col in range(1,c_cols+1,1)] lvEnd=time.time() print("Create lvArray Use:%f" %((lvEnd-lvStart)*1000)) lvStart=time.time() lvSum=sum(list(map(sum,lvArr))) lvEnd=time.time() print("lvArray summary is :%d" %(lvSum)) print("Calculate lvArray Use:%f" %((lvEnd-lvStart)*1000))
結果:
Create lvArray Use:3654.559135 lvArray summary is :500050000000 Calculate lvArray Use:962.199926 [Finished in 6.3s]
========
JAVA:
public class Test { public static void main(String[] args) { long lvStart = System.currentTimeMillis(); int[][] lvArr = new int[10000][10000]; for (int row = 0; row < lvArr.length; row++) { for (int col = 0; col < lvArr[row].length; col++) { lvArr[row][col] = col + 1; } } long lvEnd = System.currentTimeMillis(); System.out.println(String.format("Create lvArray Use:%d", lvEnd - lvStart)); lvStart = System.currentTimeMillis(); long lvSum = 0; for (int row = 0; row < lvArr.length; row++) { for (int col = 0; col < lvArr[row].length; col++) { lvSum += lvArr[row][col]; } } lvEnd = System.currentTimeMillis(); System.out.println(String.format("lvArray summary is :%d", lvSum)); System.out.println(String.format("Calculate lvArray Use:%d", lvEnd-lvStart)); } }
結果:
Create lvArray Use:257 lvArray summary is :500050000000 Calculate lvArray Use:39
当初、Python ではリストおよび配列メソッドの操作に並列コンピューティングが使用されるだろうと考えていましたが、そうではなかったので、残念に思います。
C/Delphi のような難しい奴らと比較するつもりはありません。間違いなく数秒で消えてしまいます。
以上がPythonはJavaよりどれくらい遅いですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。