Я заметил значительную разницу во времени выполнения даже для простого цикла на двух похожих, но разных устройствах, то есть Samsung Galaxy S4 и S7. На S7 тест ниже занимает ~ 5 мс, а на S4 ~ 250 мс, разница в 50 раз. Я уверен, что S7 быстрее, чем S4, но в 50 раз ???
Я попробовал Android Profiler (CPU, MEMORY), но не увидел никаких красных флажков. Приложение S7 готовилось примерно на 10% CPU, а S4 - на 25%.
Код, приведенный ниже, представляет собой значительно отрывок из моего настоящего приложения.
//@ Test Timing
public static void timingTest()
{
int i,count=0;
long t1,t2;
String TAG="MYAPP";
t1 = System.currentTimeMillis();
for( i=0; i<4000000; i++ ) { // get start time
count++; // just bump count
}
t2 = System.currentTimeMillis(); // get stop time
String msg=String.format( "ELAPSED = %8.3f sec.", 0.001*(t2-t1) );
Log.i( TAG, msg ); // announce elapsed time
}
Я думал, что это могут быть различия в оптимизации, но он не сделал никакого относительного
разница, если я положу реальную (неоптимизируемую) обработку в цикле. Это также не имело никакого значения между сборками Debug и Release.
Я бью уже неделю без дополнительной информации.
У кого-нибудь есть идеи по этому поводу или я просто неудачник?