[Java lista] array

Ákos Tajti akos.tajti at gmail.com
2009. Dec. 21., H, 16:27:14 CET


szia!

ebben e kódban tényleg előfordulhat, hogy natívra fordulnak bizonyos
kódrészletek, amik nagyon sokszor futnak le. viszont ez olyan hamar
megtörténik, hogy annak egyáltalán nincs látható hatása az eredményre
1000000 futás mellett. de ha mégis így lenne, akkor a -XX:CompileThreshold
opcióval nagyon magasra vagy 0-ra állítva azt a határértéket, ahányszor egy
metódusnak meg kell hívódnia ahhoz, hogy natívra forduljon, elkerülhető ez
az apró hiba  is.

Tajti Ákos
Software Developer
Connexis Kft.
http://cesjava.freeblog.hu
http://akostajti.tumblr.com
http://anapszepe.tumblr.com/

> Te valószínűleg nem érted miről beszélek.

> K

2009/12/10 CoL <col at gear.hu <http://javagrund.hu/mailman/listinfo/javalist>>:
>* 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
<http://javagrund.hu/mailman/listinfo/javalist>>:
*>>*
*>>>* 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
<http://javagrund.hu/mailman/listinfo/javalist>>:
*>>>>*
*>>>>*
*>>>>>* 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>
*>>>>>* http://javagrund.hu/mailman/listinfo/javalist
*>>>>>*
*>>>>>*
*>>>>>*
*>>>>* _______________________________________________
*>>>>* Javalist mailing list
*>>>>* Javalist at javagrund.hu <http://javagrund.hu/mailman/listinfo/javalist>
*>>>>* http://javagrund.hu/mailman/listinfo/javalist
*>>>>*
*>>>>*
*>>>>*
*>>>* _______________________________________________
*>>>* Javalist mailing list
*>>>* Javalist at javagrund.hu <http://javagrund.hu/mailman/listinfo/javalist>
*>>>* http://javagrund.hu/mailman/listinfo/javalist
*>>>*
*>>>*
*>>* _______________________________________________
*>>* Javalist mailing list
*>>* Javalist at javagrund.hu <http://javagrund.hu/mailman/listinfo/javalist>
*>>* http://javagrund.hu/mailman/listinfo/javalist
*>>*
*>>*
*>* _______________________________________________
*>* Javalist mailing list
*>* Javalist at javagrund.hu <http://javagrund.hu/mailman/listinfo/javalist>
*>* http://javagrund.hu/mailman/listinfo/javalist
*>*
*
--------- következő rész ---------
Egy csatolt HTML állomány át lett konvertálva...
URL: http://javagrund.hu/pipermail/javalist/attachments/20091221/80207178/attachment.html 


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