为什么程序在新设备上执行的时间比旧设备要多?

时间:2016-11-29 16:33:18

标签: java android objective-c c iphone

我在不同的智能手机上执行用C编写的功能。智能手机是iPhone 6,iPhone 7,Nexus 5和三星Galaxy S7。

对于android我使用以下函数来获取时间。

typedef struct Timer {
    unsigned int totalRuns;
    unsigned long long totalTime;
    struct timespec startTime;
    struct timespec stopTime;
} Timer;

Void start(Timer* timer){
    clock_gettime(CLOCK_MONOTONIC, &(timer->startTime));
}

void stop(Timer* timer){
    clock_gettime(CLOCK_MONOTONIC, &(timer->stopTime));
    timer->totalTime += (timer->stopTime.tv_sec - timer->startTime.tv_sec)*1000000000LL + timer->stopTime.tv_nsec - timer->startTime.tv_nsec;
    timer->totalRuns++;
}

在iOS中,我使用以下代码片段调用Objective C中的计时函数。

NSDate *start, *stop;
NSTimeInterval executionTime = 0;

start = [NSDate date];
//Function to be timed
stop = [NSDate date];
executionTime = [stop timeIntervalSinceDate:start];

在Nexus 5和iPhone 6中使用相同的代码显示比iPhone 7和三星Galaxy S7更快的执行时间,但我觉得应该是另一种方式,因为新手机更快。造成这种差异的原因是什么?或者有没有办法在所有4个设备上统一计时?

0 个答案:

没有答案