[Java lista] array

CoL col at gear.hu
2009. Dec. 10., Cs, 18:37:30 CET


Hali,

akkor ezzel meg is válaszoltad, hogy nincs warmup mérési hiba. Ha 
összehasonlítod, az n* megismételt eredményeket, látni fogod, hogy az 
arányok kialakulnak, elképzelhető, hogy 1-2 alkalommal peak szerű 
eredményed lesz, de az átlagot nézve pont, hogy megkapod amit akartál a 
microbenchmarkoddal.

Mit javasolsz a microbenchmarkok helyett, ha szerinted mégsincs 
létjogosultságuk?

C.

Kristof Jozsa wrote:
> 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
>>
>>     
> _______________________________________________
> 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