首页 > 代码库 > DMA性能测试
DMA性能测试
本程序主要用来计算DMA数据读写过程中所花费的总得时间周期,依据公式T=tStart+ceil(L/4)+ceil(L/256)*tTransform*2
因为tTransform是一个常量(通常默认为11),因此只需根据debug文件分析出tStart即可。
一开始我以为tStart是一个变量,是buffer2-2(读)的开始时刻与准备时刻最后一个buffer2-17(写)的差值,因此写了
以下程序:
1 #************************************************************************* 2 3 # File Name: performance_testing.py 4 # Author: jiangjing 5 # Mail: jjdl@mail.ustc.edu.cn 6 # Created Time: Sat 15 Jul 2017 09:34:04 PM PDT 7 #************************************************************************\ 8 import math 9 import sys 10 11 def GetFirstBuffer2_2(path): 12 fDebug=open(path).read() 13 index2_2=fDebug.index("[buffer2-2]") 14 index_space=fDebug.index(" ",index2_2+17) 15 return [index2_2,fDebug[index2_2+17:index_space]] 16 17 def GetLastBuffer2_17(path,index2_2): 18 fDebug=open(path).read() 19 index2_17=fDebug.rindex("[buffer2-17]",0,index2_2) 20 index_space=fDebug.index(" ",index2_17+18) 21 return [index2_17,fDebug[index2_17+18:index_space]] 22 23 def GetTotalTime(L,path,tTransform=11): #the ‘path‘ is the paht of debug file 24 buffer2_2=GetFirstBuffer2_2(path) 25 buffer2_17=GetLastBuffer2_17(path,buffer2_2[0]) 26 return int(buffer2_2[1])-int(buffer2_17[1])+math.ceil(L/4)+math.ceil(L/256)*tTransform*2 27 28 #the code just for debug,you can comment the following code 29 if __name__==‘__main__‘: 30 if(len(sys.argv)>1): 31 print(GetTotalTime(int(sys.argv[1]),sys.argv[2]))
但师兄说其实tStart也是一个常量,所以又将程序简化了以下:
1 #************************************************************************* 2 # File Name: PerformanceTesting.py 3 # Author: jiangjing 4 # Mail: jjdl@mail.ustc.edu.cn 5 # Created Time: Sun 16 Jul 2017 06:12:22 AM PDT 6 #************************************************************************ 7 import math 8 9 tStart=2448 10 def GetTime(L,tTransform=11): 11 return tStart+math.ceil(L/4)+math.ceil(L/256)*tTransform*2 12 13 def GetTotalTime(lList): 14 totalTime=0 15 for l in lList: 16 L=l[4] 17 totalTime+=GetTime(L) 18 return totalTime
下面的这个test.py为测试样例:
1 #************************************************************************* 2 # File Name: test.py 3 # Author: jiangjing 4 # Mail: jjdl@mail.ustc.edu.cn 5 # Created Time: Sun 16 Jul 2017 06:18:24 AM PDT 6 #************************************************************************ 7 import PerformanceTesting as PT 8 9 lList=[[0,0,0,0,65555],[0,0,0,0,672323]] 10 print(PT.GetTotalTime(lList))
DMA性能测试
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。