Тип данных с плавающей точкой для максимальной производительности в J2ME - PullRequest
2 голосов
/ 14 ноября 2010

Я хочу использовать числа с плавающей точкой в ​​моей программе J2ME (MIDP 2.0).
Мне не нужна высокая точность, поэтому я рассматриваю выбор типа float.

Однако,мне кажется, что я читал статью на Java, в которой говорится, что double лучше поддерживается процессорами, поэтому он быстрее.

Я выполняю много операций с такими числами, поэтому для меня важна производительность.

Вопрос в том, какой из этих типов данных работает быстрее в J2ME ?

1 Ответ

1 голос
/ 14 ноября 2010

Разница в производительности между float и double не так существенна.

Если вы выполняете эти операции очень часто, чем с плавающей точкой, лучше и они занимают меньше места.

Обновление:

 public long sumDouble(){

        double[] arr = new double[1000];
        for(int i = 0 ;i < 1000;i++){
            arr[i]=new Random().nextFloat();
        }
        float sum = 0.0f;
        long start = System.currentTimeMillis();
        for(int i = 0 ;i < 1000;i++){
            sum+=arr[i];
        }
        System.out.println(""+sum);
        long end = System.currentTimeMillis();
        return end - start;
    }
    public long sumFloat(){

        double[] arr = new double[1000];
        for(int i = 0 ;i < 1000;i++){
            arr[i]=new Random().nextDouble();
        }
        double sum = 0.0f;
        long start = System.currentTimeMillis();
        for(int i = 0 ;i < 1000;i++){
            sum+=arr[i];
        }
        System.out.println(""+sum);
        long end = System.currentTimeMillis();
        return end - start;
    }

Попробуйте выполнить этиМетоды в вашем реальном устройстве для измерения разницы в производительности. Это не так существенно.

...