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: [email protected]
 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: [email protected]
 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: [email protected]
 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))

时间: 2024-12-31 13:24:18

DMA性能测试的相关文章

Android 终端性能测试——内存篇

前言 做Android QQ性能测试时,内存测试中遇到不少困惑,"各种"内存术语,到底什么意思,怎么获取,这里总结一下. 进行的内存测试主要有两个方面,一,OOM的发现和定位,二,同历史版本或竞品的对比测试.关于oom可以用MAT进行分析,具体分析方法参见susanwu在km上的文章<如何使用Memory_Analyzer分析内存泄漏>.下面主要总结一下Android性能测试中常用的方法及解释 一:running services"查看service进程内存 从A

任务21性能测试

任务21性能测试 任务描述:电脑组装调试完毕后,需要性能测试判断能否满足应用需求. 任务思维导图: 任务实施过程: 一.性能检测基本方法 1.         游戏性能测试,任何游戏都有官方的硬件配置标准,但是实际使用时能否达到要求?需要实测,先选择自己的最爱游戏,玩一个小时再说. 2.         视频播放性能测试,一些视频文件由于高清效果,对计算机的硬件解码能力要求很高. 3.         应用软件性能测试,测试软件的处理能力. 4.         文件复制性能测试,测试系统和硬盘

app性能测试【通过loadrunner录制】

随着智能手机近年来的快速增长,从游戏娱乐到移动办公的各式各样的手机APP软件渗透到我们的生活中,对于大型的手机APP测试不仅要关注它的功能性.易用性还要关注它的性能,最近发现LoadRunner12可以对手机APP做性能测试,但由于LoadRunner12还没有破解版最多只有50个并发用户,所以我用LoadRunner12录制手机APP的脚本后放到LoadRunner8.0里进行压测,LoadRunner8.0可并发10000个用户. 1.下载CCProxy代理服务器,安装运行该软件用来检测本机

RC ORC Parquet 格式比较和性能测试

RC ORC Parquet 格式比较和性能测试 作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 为什么要比较这三者 为什么要比较,起因是为了提高Hadoop集群的存储和计算效率,尤其是离线Hive作业的效率,为什么比较的是这三者,是因为三者是目前Hive离线作业中正在大规模使用或可能大规模使用的三种主流的相对成熟的文件格式 对于ORC性能的评测,Hortonworks发过一

Android性能测试

测试应用的启动时间 adb shell am start -W packagename/activity,eg:adb shell am start -W com.tencent.mm/.ui.LauncherUI,显示的结果中,thisTime和totalTime的含义分别为: thisTime: just current activity launched time totalTime:the activity you started may be on the bottom of acti

性能测试指标

性能测试指标 通用指标(指Web应用服务器.数据库服务器必需测试项) Web服务器指标 数据库服务器性能指标 系统的瓶颈定义 稳定系统的资源状态 通俗理解: ·日访问量 ·常用页面最大并发数 ·同时在线人数 ·访问相应时间 案例:最近公司一个项目,是个门户网站,需要做性能测试,根据项目特点定出了主要测试项和测试方案: 一种是测试几个常用页面能接受的最大并发数(用户名参数化,设置集合点策略) 一种是测试服务器长时间压力下,用户能否正常操作(用户名参数化,迭代运行脚本) 一种则需要测试服务器能否接受

kobox : dma_s3c.ko -v1 操作寄存器方式操作S3C2440的DMA

平台:TQ2440 linux版本:Linux EmbedSky 3.16.1-svn57 #56 Sat Oct 18 21:46:22 PDT 2014 armv4tl GNU/Linux 目标:v2中改成s3c2410_dma_xxx方式来操作DMA,看这里的寄存器映射是怎么使用系统接口来操作的! #include "dma.h" #define MEM_CPY_NO_DMA 0 #define MEM_CPY_DMA 1 //#define BUF_SIZE (512*1024

Android内存和Cpu性能测试

Android内存限制java虚拟机有内存使用上限的限制 adb shell进入手机,这此参数被纪录在/system/build.prop中,如果想直接查看可以使用adb shell getprop 单个应用程序最大内存限制,超过这个值会产生OOMdalvik.vm.heapgrowthlimit 应用启动后分配的初始内存dalvik.vm.heapstartsize 单个java虚拟机最大的内存限制,超过这个值会产生OOMdalvik.vm.heapsize 小米2S的一些内存限制 #查看单个

16、编译安装bind 9.10.6及queryperf性能测试 学习笔记

1.安装开发环境 [[email protected] ~]# yum -y groupinstall "Server Platform Development" "Development tools" 2.编译安装bind [[email protected] ~]# tar xf bind-9.10.6.tar.gz [[email protected] ~]# cd bind-9.10.6 [[email protected] bind-9.10.6]# ./