Posted on 2008-11-08 00:16
Robert Su 閱讀(4462)
評論(0) 編輯 收藏 所屬分類:
Python 、
Java
java是一種解析性的語言,可是多了一個中間步驟,就是把源代碼編譯成class文件,不過此編譯非編譯器的編譯,因為class里面不是機器語言或匯編語言,而是經過編碼的8位字節二進制流。JVM是java的解析器。
python是一門地地道道的解析型語言。
它們之間的效率誰更高呢?
大頭 23:56:14
“如果相同功能的class和python,class執行要快,因為class已經全部翻譯好了,python還要一句一句解析。”
Java多了編譯成class的過程,所以效率相對于python要慢一些。
事實上python也可以產生class一樣的東西
字節編譯的.pyc文件
“輸入一個模塊相對來說是一個比較費時的事情,所以Python做了一些技巧,以便使輸入模塊更加快一些。一種方法是創建 字節編譯的文件 ,這些文件以.pyc作為擴展名。字節編譯的文件與Python變換程序的中間狀態有關(是否還記得Python如何工作的介紹?)。當你在下次從別的程序輸入這個模塊的時候,.pyc文件是十分有用的——它會快得多,因為一部分輸入模塊所需的處理已經完成了。另外,這些字節編譯的文件也是與平臺無關的。所以,現在你知道了那些.pyc文件事實上是什么了。”——《python簡明教程》
(煩請明白的看到了錯誤之處給指正:)
附:
編譯型語言,執行速度快、效率高;依賴編譯器、跨平臺性差些。如C、C++、Delphi、Pascal,Fortran。
解釋型語言,執行速度慢、效率低;依賴解釋器、跨平臺性好。如Java、Basic.