[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