Giter VIP home page Giter VIP logo

Comments (50)

aozhimin avatar aozhimin commented on May 18, 2024

@iamqk
我这边测试了下,使用上述方式在 iOS 上确实拿不到 CPU 频率,而拿不到的主要是因为通过 sysctl 系统调用在 MacOS 和 iOS 平台上的获取系统信息的底层实现是通过内核变量的 MIB(管理信息库)来访问导出的内核变量,但是出于安全性的考虑,MIB 有些内核变量在这几个版本的 iOS 上禁止访问这些内核变量,比如你上面提到的 HW_CPU_FREQ 就是其中之一,类似的还有 cpufrequency_maxcpufrequency_min,但是网上还有很多代码是通过这种方式在较老版本上成功获取到,包括我文章提到手淘上也用这种方式,应该都是遗留代码。
那还有什么其他方式获取 CPU 主频呢?其实可以通过两种方式。
第一种方式比较简单,是采取硬编码的方式,在 App 中建立一张 CPU 主频的映射表,然后根据用户的机型去这张映射表中找出即可。

单位为 MHZ
static const NSUInteger CPUFrequencyTable[] = {
    [iPhone_1G]         = 412,
    [iPhone_3G]         = 620,
    [iPhone_3GS]        = 600,
    [iPhone_4]          = 800,
    [iPhone_4_Verizon]  = 800,
    [iPhone_4S]         = 800,
    [iPhone_5_GSM]      = 1300,
    [iPhone_5_CDMA]     = 1300,
    [iPhone_5C]         = 1000,
    [iPhone_5S]         = 1300,
    [iPhone_6]          = 1400,
    [iPhone_6_Plus]     = 1400,
    [iPhone_6S]         = 1850,
    [iPhone_6S_Plus]    = 1850,
    [iPod_Touch_1G]     = 400,
    [iPod_Touch_2G]     = 533,
    [iPod_Touch_3G]     = 600,
    [iPod_Touch_4G]     = 800,
    [iPod_Touch_5]      = 1000,
    [iPad_1]            = 1000,
    [iPad_2_CDMA]       = 1000,
    [iPad_2_GSM]        = 1000,
    [iPad_2_WiFi]       = 1000,
    [iPad_3_WiFi]       = 1000,
    [iPad_3_GSM]        = 1000,
    [iPad_3_CDMA]       = 1000,
    [iPad_4_WiFi]       = 1400,
    [iPad_4_GSM]        = 1400,
    [iPad_4_CDMA]       = 1400,
    [iPad_Air]          = 1400,
    [iPad_Air_Cellular] = 1400,
    [iPad_Air_2]        = 1500,
    [iPad_Air_2_Cellular] = 1500,
    [iPad_Pro]          = 2260,
    [iPad_Mini_WiFi]    = 1000,
    [iPad_Mini_GSM]     = 1000,
    [iPad_Mini_CDMA]    = 1000,
    [iPad_Mini_2]       = 1300,
    [iPad_Mini_2_Cellular] = 1300,
    [iPad_Mini_3]       = 1300,
    [iPad_Mini_3_Cellular] = 1300,
    [iUnknown]          = 0
};

第二种方式是自己通过运算来得出 CPU 的时钟频率

extern int freqTest(int cycles);

static double GetCPUFrequency(void)
{
    volatile NSTimeInterval times[500];
    
    int sum = 0;
    
    for(int i = 0; i < 500; i++)
    {
        times[i] = [[NSProcessInfo processInfo] systemUptime];
        sum += freqTest(10000);
        times[i] = [[NSProcessInfo processInfo] systemUptime] - times[i];
    }
    
    NSTimeInterval time = times[0];
    for(int i = 1; i < 500; i++)
    {
        if(time > times[i])
            time = times[i];
    }
    
    double freq = 1300000.0 / time;
    return freq;
}

其中 freqTest 这个函数是用汇编写的,在工程加入一个文件 cpuFreq.s,后缀 s 代表这个文件是一个汇编文件,文件的代码如下:

.text
.align 4
.globl _freqTest    

_freqTest:

    push    {r4-r11, lr}

freqTest_LOOP:

    // loop 1
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 2
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 3
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 4
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 5
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 6
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 7
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 8
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 9
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    // loop 10
    add     r2, r2, r1
    add     r3, r3, r2
    add     r4, r4, r3
    add     r5, r5, r4
    add     r6, r6, r5
    add     r7, r7, r6
    add     r8, r8, r7
    add     r9, r9, r8
    add     r10, r10, r9
    add     r11, r11, r10
    add     r12, r12, r11
    add     r14, r14, r12
    add     r1, r1, r14

    subs    r0, r0, #1
    bne     freqTest_LOOP
    pop     {r4-r11, pc}

当然这个汇编文件只支持 armv7 和 armv7s,也就是 32 位 Arch,64位汇编指令没给出,如果你使用的是 64 位机器调试,记得将 build archive architecture only 设置为 NO,否则会编译不通过,如下图:
image
我这边用一台 iPhone 6 测试了这种方法获得 CPU 频率,结果为 1391614727.725209 HZ,大约也就是 1400 MHZ,和上面那张表中主频一致。

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@iamqk 这个 issue 也可以佐证 HW_CPU_FREQ 这个接口已经不行了

from ios-monitor-platform.

iamqk avatar iamqk commented on May 18, 2024

@aozhimin 谢谢你的帮助

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@iamqk 不客气,希望上面答案能帮助到你!

from ios-monitor-platform.

iamqk avatar iamqk commented on May 18, 2024

@aozhimin 我今天调了一下,改动了一些上面汇编的代码,发现arm64也能正常测试cpu频率了

.text
.text
.align 4
.globl _freqTest

_freqTest:

STP x4, x5, [sp, #16 * 0]
STP x6, x7, [sp, #16 * 1]
STP x8, x9, [sp, #16 * 2]
STP x10, x11, [sp, #16 * 3]

freqTest_LOOP:

// loop 1
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 2
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 3
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 4
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 5
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 6
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 7
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 8
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 9
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 10
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

subs    x0, x0, #1
bne     freqTest_LOOP

RET

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@iamqk , 好的,赞👍

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

请问楼主 可以给个小demo 本人小白 最近最这个比较感兴趣 想研究下

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiao 完整功能还是只是 CPU 的 Demo?完整功能的我还在整理当中……

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

麻烦楼主给个测试cpu的 demo 不太懂汇编怎么弄 谢谢 非常感谢 我邮箱 [email protected]
好人天天开心 希望楼主早日看到 能够给我发一个 急等! 再次感谢

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiao 好的,我今天晚上把 Demo 发到你的邮箱……

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@19kka 好的,64位的汇编可以参考 @iamqk 上面给的,我还没来得及试,应该没什么问题。

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiao Demo 好了,开了个 Repo,你 clone 下来,在真机运行即可。

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

已经收到 测试可用 也跟其他几款 对比下 基本吻合 谢谢啦 像大佬学习 也祝天天开心

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@19kka 层主发了个demo 我试了下 提供的32的汇编是没有问题 但是我用64位的 贴上去 发现clang无法通过 如果你测试没问题 可以发个 测试64位的demo我吗 确实很菜 对汇编也不懂 邮箱 [email protected]
谢谢啦

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiao 客气了,互相学习,64 位的你将 Demo 中 cpuFreq.s 的汇编代码替换成下面的试试。

.text
.text
.align 4
.globl _freqTest

_freqTest:

STP x4, x5, [sp, #16 * 0]
STP x6, x7, [sp, #16 * 1]
STP x8, x9, [sp, #16 * 2]
STP x10, x11, [sp, #16 * 3]

freqTest_LOOP:

// loop 1
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 2
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 3
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 4
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 5
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 6
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 7
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 8
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 9
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

// loop 10
add     x2, x2, x1
add     x3, x3, x2
add     x4, x4, x3
add     x5, x5, x4
add     x6, x6, x5
add     x7, x7, x6
add     x8, x8, x7
add     x9, x9, x8
add     x10, x10, x9
add     x11, x11, x10
add     x12, x12, x11
add     x14, x14, x12
add     x1, x1, x14

subs    x0, x0, #1
bne     freqTest_LOOP

RET

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

我试了呀 通不过

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiaoDemo 更新到 arm64 了,你 pull 下来试试,除了替换 asm 代码,build settings 里面要移除 armv7 armv7s 这两个 32 位架构。

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

哦 好的 谢谢啦 测试可以用呢 再次感谢

from ios-monitor-platform.

chestysh avatar chestysh commented on May 18, 2024

能给我也发一份吗,参考参考 另外如果是获取系统的进程 有思路吗, sysctl 这个函数也不能获取了邮箱:[email protected] 谢谢

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@chestysh https://github.com/aozhimin/iOS-CPUDemo
你要获取系统进程列表,还是系统进程占用的资源?

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

大佬 我又发现了一个新的问题 在debug模式下 测试没问题 然而release环境下 测得值 是无穷大的 请问这是怎么回事呀?

from ios-monitor-platform.

aozhimin avatar aozhimin commented on May 18, 2024

@BestZedXiao 好的,我这边看是否能重现这个问题

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk 请问如何做到这个测试的汇编能同时支持arm64和armV7 armV7S

from ios-monitor-platform.

iamqk avatar iamqk commented on May 18, 2024

@waiwaib 分开编译 lipo合成.a

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk 昨天我自己想到这么做了..😀~ 谢谢老哥

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@waiwaib 大佬 请教下 你在release 环境测试 会出现问题么 debug没问题

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 不会,可以正常 Archive.

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@waiwaib 不是 我是说 你在release环境 跑过吗 打包没问题 但是 测得数据有问题

from ios-monitor-platform.

chestysh avatar chestysh commented on May 18, 2024

from ios-monitor-platform.

thameslu avatar thameslu commented on May 18, 2024

能否解释下为什么是用:double freq = 1300000.0 / time;来计算CPU频率呢?
我知道了,汇编中用了130条add指令,而每次执行10000次,所以1300000除以耗时即得频率了

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

大佬 请问你这边解决了这个release环境的问题吗?

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 老弟,release 会有问题,啊应该不会吧,我就打了个.a,不同arch引用不同汇编,

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 我打个ad-hoc看看

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 确实有问题,你那边有什么结果了没? 结果一直是0

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@waiwaib 我都试了 跟32位 64位 没啥关系 跟这个汇编方法 的环境应该的有关系吧 暂时还没有弄出来呢

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk 大佬你这边对于这个release结果出不来的情况有什么见解吗?

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 我去真机看一下release log

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 已经解决,是测试cpu的汇编操作寄存器的时候把栈内容改动了.导致结果数组内容错误

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@waiwaib 果断的牛啊 可以发下具体的操作方法 或是demo吗 我小白 谢谢啦

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao 我建议你降低优化等级.我发现我前面的问题解决了 又出现了莫名的问题, 这个问题的根源是编译器的优化导致的,

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@BestZedXiao build setting optimization level release降低等级...

from ios-monitor-platform.

BestZedXiao avatar BestZedXiao commented on May 18, 2024

@waiwaib 哟 真是高手啊 哈哈 发现真的可以了啊 不过 你后面又出现了啥问题啊

from ios-monitor-platform.

iamqk avatar iamqk commented on May 18, 2024

@waiwaib @BestZedXiao 我这里也是把optimization level 降为none的

from ios-monitor-platform.

chestysh avatar chestysh commented on May 18, 2024

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk @BestZedXiao 另外的解决release情况下code generation optimization level导致出现问题可能方案 1.剔除掉被打乱的测试数据(已验证,可正确运行于10余测试设备,但是不能确保万一用户设备出现问题) 2.使用C函数来代替汇编进行测试,(需要时间去测试各个设备的运行时间是否一致) ..其他未知~

from ios-monitor-platform.

iamqk avatar iamqk commented on May 18, 2024

@waiwaib 1. code generation optimization level 这个在64位的静态库的工程设置就行了,应该对调用的工程没有什么影响,即调用工程的code generation optimization level可以正常设置,具体你设置code generation optimization level后产生的是什么新问题呢? 2.用汇编不用c函数就是因为c函数最后也是编译成汇编的,但是编译后的准确度肯定不如直接使用汇编

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk 1.还是不行,我测试了重新打.a,静态库工程code generation optimization level 设置为none,调用工程还是会有问题,产生的问题是跑测试的汇编会打乱volatile NSTimeInterval times[500]的值,最开始我改用new 来在堆上分配array空间,结果...导致整个函数内部都不能分配内存, 2.因为我怀疑是汇编这块被编译器优化导致问题,所以想试试用C函数来测试看看~

from ios-monitor-platform.

waiwaib avatar waiwaib commented on May 18, 2024

@iamqk 目前我还是采用的剔除被打乱的数据,因为你存了结果后,测试的汇编又在下次运行一顿操作寄存器什么的,,,数据就被抹除重写了之类..导致测试结果不正确

from ios-monitor-platform.

shadowXCode avatar shadowXCode commented on May 18, 2024

请问谁能提供下x86-64的汇编,合成静态库在模拟器下不至于报错。万分感谢

from ios-monitor-platform.

echooj avatar echooj commented on May 18, 2024

跪求楼主systemCPU的获取demo [email protected]

from ios-monitor-platform.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.