日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python硬件测试开发_用python实现高性能测试工具(一)

發布時間:2025/3/19 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python硬件测试开发_用python实现高性能测试工具(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

做過幾年開發或者測試開發的人員,時常會覺得很迷茫,新功能的開發或者老功能的維護,基本是在堆代碼了。本文主要講述在系統設計和架構方面的性能優化供大家學習, 有些內容涉及到具體產品,做了些改動或者單獨寫了測試代碼演示。

項目背景:

實現個高性能的diameter 測試工具, 接受1000+發送1000,雙向要支持到2000條消息每秒。 diameter 協議的源代碼是從這里下載的 http://sourceforge.net/projects/pyprotosim/, 這個開源包還支持SMPP, RADIUS, DHCP, LDAP, 而且新增加的協議字段都可以在dictionary配置屬性,不需要修改代碼,實在是方便。 初始階段我們為了實現功能,沒有怎么考慮性能的問題,很多地方用的是單線程,初始性能只能支持到50 消息。硬件環境: SunFire 4170, 16 核,每核2.4 G

Python性能優化的幾個方向:

1. 換python的解析器:常見的python解析器有pysco,pypy, cython, jython, pysco已經對python 2.7不支持了,就沒有測試,據說跑的很C語言一樣快。對pypy, jython做了簡單測試,pypy在不同機器上可以提高到5-10倍的樣子,Jython雖然可以避免python GIL的問題(因為jython是跑在java虛擬機上的),但測試看來,效率提升很少。

2. 優化代碼

3. 改變系統架構,多線程,多進程或者協程

方案1: 換Python解析器

如果換Python解析器能達到性能需求是最廉價的方案了,不需要對代碼做任何改動。下面代碼只是為了說明pypy的效果,單獨寫的測試代碼,在windows下運行的結果。在linux下機器上運行效果會更好些。#!/usr/bin/env python

#coding=utf-8

import time

def check(num):

a = list(str(num))

b = a[::-1]

if a == b:

return True

return False

def test():

all = xrange(1,10**7)

for i in all:

if check(i):

if check(i**2):

i**2

if __name__ == '__main__':

start=time.time()

test()

print time.time()-start

分別用python和pypy的運行結果C:\Python27\python.exeD:/RCC/mp/src/test.py

14.4940001965

C:\pypy-2.1\pypy.exeD:/RCC/mp/src/test.py

4.37800002098

可以看出來pypy的運行結果效果還是明顯的,雖然能提高5倍(linux機器上),50*5, 離2000還差好遠。 pypy對python 多線程的支持沒有明顯效果,這個在后面會提到。

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的python硬件测试开发_用python实现高性能测试工具(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。