壓測過程當中看的應用程序性能指標主要有tps和響應時間。Python2.5之後自帶cProfile代碼時間監控性能指標php
jvm不只可以運行java程序還能以字節碼形式運行php、Python、ruby程序。jvm中的解釋器會把源語言的字節碼翻譯成另外一種解釋型的中間語言 如Grovey、Jython,因此中間語言的速度快慢是性能是否優良的關鍵。html
JVM:一種可以運行Java字節碼(Java bytecode)的虛擬機。如今JVM並不僅僅只能運行Java程序,在JVM上出現了若干使用Java虛擬機運行的腳本程序,好比什麼PHP, Python, Ruby等等(圖5)java
字節碼:字節碼是已經通過編譯,但與特定機器碼無關,須要解釋器轉譯後才能成爲機器碼的中間代碼。python
Java字節碼:是Java虛擬機執行的一種指令格式。ruby
解釋器:是一種電腦程序、是一門獨立的語言,能夠把高級語言一行一行轉義運行。它會先將源碼翻譯成另外一種語言(Grovey、Jython),以供屢次運行而無需再經編譯。其製成品無需依賴編譯器而運行,程序運行速度比較快。參考看圖三jvm
grovey:無縫集成 全部已經存在的 Java對象和類庫。直接編譯成Java字節碼函數
Jython:Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的徹底實現。Jython也有不少從CPython中繼承的模塊庫。最有趣的事情是Jython不像CPython或其餘任何高級語言,它提供了對其實現語言的一切存取。因此Jython不只給你提供了Python的庫,同時也提供了全部的Java類。這使其有一個巨大的資源庫。工具
cProfile:python -m cProfile -s tottime your_program.py 對應用程序的一個時間監控工具:監控程序的每一行代碼性能
圖(一).net
ncalls:函數總共調用次數
tottime:這個函數總共調用花費時間
percall:每一個調用平均花費時間
cumtime:總共累計花費時間
percall:每一個調用的平均累積時間
filename:文件名
Python有沒有虛擬機?Python代碼運行在哪裏的?
圖2
圖3
圖4
圖5
參考連接:
https://blog.csdn.net/weixin_40304570/article/details/79459811
https://blog.csdn.net/weixin_34144848/article/details/90557228
https://baike.baidu.com/item/%E8%A7%A3%E9%87%8A%E5%99%A8/10418965?fr=aladdin