Python項目性能測試

概述

壓測過程當中看的應用程序性能指標主要有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

http://www.javashuo.com/article/p-puzhoveu-cm.html

https://www.php.cn/python-tutorials-423340.html

相關文章
相關標籤/搜索