zoukankan      html  css  js  c++  java
  • 如何测试Arm的频率

    看了半天终于看懂了Dicky的代码。想通了其实很简单。把原理和伪代码记录一下备忘:)

    最终的原理很简单:

    执行指定的几句汇编(比较好用了指令周期个数),然后计算执行这段代码的时间。


    然后。。。
    。。。
    。。。
    完了-_-b


    当然这其中有几个小的trick

    1 开始执行汇编之前先要把优先级提到最高,汇编也不要太长,尽量防止CPU被别的进程打断
    2 计算执行代码的时间的方法
        Windows下最精确好像也只有Gettickcount了。但是他也只是到ms级别,比起动辄上百Mhz的CPU来说,1ms可以执行上百条指令了,那还测个p啊。。。
         米关系,我可以测试1ms到底做多少次Gettickcount不就好了。。可惜看不到windows的Gettickcount用了多少个指令周期,否则直接就可以算出来了。所以只好用个折中的方案,代码如下
    void GetTimeCycle(int* p)
    {
        int n=1;
        int j;
        int i = GetTickCount();
        while ((j = GetTickCount())==i)
            ++n;
        p[0] = j;
        p[1] = n;
    }
    通过n的计数来得到1ms中执行Gettickcount的次数。这样,测试的精度就变成了Gettickcount所需要的时间了。


    原理和难点就是这些,源码就免了,毕竟是dicky的代码:P
    loop's blog
  • 相关阅读:
    Android(安卓)全套开发资料视频+源码
    腾讯qlv视频转为MP4格式工具
    优酷爱奇艺视频转换为MP4格式工具
    JAVA全套资料含视频源码(持续更新~)
    PPT、Word、Excel模板免费下载
    图片下载
    aspx使用KindEditor副文本框插件出现检测到有潜在危险
    跨域请求
    WEUI滚动加载
    jq复制
  • 原文地址:https://www.cnblogs.com/goodloop/p/1357020.html
Copyright © 2011-2022 走看看