代码之家  ›  专栏  ›  技术社区  ›  Oleh Prypin

浮点数据类型,在J2ME中实现最高性能

  •  2
  • Oleh Prypin  · 技术社区  · 14 年前

    我想在J2ME(MIDP2.0)程序中使用浮点数。
    我不需要高精度,所以我正在考虑选择 float 类型。

    然而,在我看来,我读了一篇Java文章,上面写着 double 处理器更好地支持,所以速度更快。

    我用这些数字做了很多操作,所以性能对我很重要。

    问题是,哪种数据类型工作得更快 在J2ME中 ?

    1 回复  |  直到 14 年前
        1
  •  1
  •   Jigar Joshi    14 年前

    float和double之间的性能差异并不显著。

    如果您经常执行这些操作,那么float比float更好,而且它消耗的空间也更少。

    更新:

     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;
        }
    

    尝试在您的实际设备中执行这些方法来测量性能差异,这并不太重要。