[Java lista] array

Kristof Jozsa kristof.jozsa at gmail.com
2009. Dec. 10., Cs, 18:33:32 CET


Szia,

a rövid válasz h akárhol.. a hosszabb választ megkaphatod egyszerűen
ha pl végtelen ciklust csinálsz a mainből, hagyod futni, megnézed a
log elejét/végét, kiszámítod az általad szignifikánsnak tartott
szeletekből az átlagokat, az egészet megismétled n-szer és
összehasonlítod. Érték szerint biztosan különböző lesz az eleje meg a
vége, arányaiban meg bőven lehetséges, de nem tudhatod amíg meg nem
nézted.

K

2009/12/10 CoL <col at gear.hu>:
> Hali,
>
> mutasd meg légyszi, ebben a kódban, hol okozhatna időmérési hibát a
> warmup period?
>
> köszi
> C.
>
> Kristof Jozsa wrote:
>> warmup period? hagyjuk már az ilyen microbenchmarkokat..
>>
>> K
>>
>> 2009/12/10 Tamás Viktor <viktor.tamas at gmail.com>:
>>
>>> Osszedobtam egy kis kodot, ime az eredmenye:
>>>
>>> Konstruktor: 1412
>>> Array fill: 465
>>> Sajat fill: 458
>>> ArrayCopy: 388
>>>
>>> Tehat az arrayCopy nyer. Figyeljetek meg a hasznalatat, nem kell hozza ket tomb.
>>> V
>>>
>>> public class A {
>>>
>>>        static final int M = 1000000;
>>>        static final int N = 256;
>>>
>>>        public static void main(String[] args) throws Exception{
>>>                t1();
>>>                t2();
>>>                t3();
>>>                t4();
>>>        }
>>>
>>>        private static void t1() {
>>>                long t0 = System.currentTimeMillis();
>>>                int[] array;
>>>                for(int i=0;i<M;i++) {
>>>                        array = new int[N];
>>>                        array = null;
>>>                }
>>>                long t1 = System.currentTimeMillis();
>>>                System.out.println("Konstruktor: " + (t1-t0));
>>>        }
>>>
>>>        private static void t2() {
>>>                long t0 = System.currentTimeMillis();
>>>                int[] array = new int[N];
>>>                for(int i=0;i<M;i++) {
>>>                        java.util.Arrays.fill(array, 0);
>>>                }
>>>                long t1 = System.currentTimeMillis();
>>>                System.out.println("Array fill: " + (t1-t0));
>>>        }
>>>
>>>        private static void t3() {
>>>                long t0 = System.currentTimeMillis();
>>>                int[] array = new int[N];
>>>                for(int i=0;i<M;i++) {
>>>                        for(int j=0;j<N;j++) array[j] = 0;
>>>                }
>>>                long t1 = System.currentTimeMillis();
>>>                System.out.println("Sajat fill: " + (t1-t0));
>>>        }
>>>
>>>        private static void t4() {
>>>                long t0 = System.currentTimeMillis();
>>>                int[] array = new int[N];
>>>                for(int i=0;i<M;i++) {
>>>                        array[0] = 0;
>>>                        System.arraycopy(array, 0, array, 1, array.length-1);
>>>                }
>>>                long t1 = System.currentTimeMillis();
>>>                System.out.println("ArrayCopy: " + (t1-t0));
>>>        }
>>> }
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at javagrund.hu
>>> http://javagrund.hu/mailman/listinfo/javalist
>>>
>>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at javagrund.hu
>> http://javagrund.hu/mailman/listinfo/javalist
>>
>>
> _______________________________________________
> Javalist mailing list
> Javalist at javagrund.hu
> http://javagrund.hu/mailman/listinfo/javalist
>


További információk a(z) Javalist levelezőlistáról