LG LG P990 optimus の速度をいじっていたところ、複数のスレッドを使用しても速度がまったく向上しないことに気付きました。
次のコードを使用して、一部の計算に必要な時間を測定しました。
public class TestThreads extends Thread{
public void run()
{
double temp;
for(int i = 0; i < 5000000 ;i++)
{
temp = Math.random()*Math.random();
}
}
}
long start = System.currentTimeMillis();
Thread t1 = new TestThreads();
Thread t2 = new TestThreads();
t1.start();
t2.start();
t1.join();
t2.join();
計算に必要な時間と比較した結果の時間
for(int i = 0; i < 10000000 ;i++)
{
temp = Math.random()*Math.random();
}
2 スレッド バージョンは同じ量のループを計算しますが、並列に実行される可能性のある 2 つのスレッドに分散されるため、このバージョンは大幅に高速になると予想しました。ただし、スピードアップはまったくなく、場合によっては、スレッド バージョンの方がさらに遅くなりました。私のアイデア/コードに問題がありますか、それとも Android は複数の CPU コアに複数のスレッドを分散しませんか?