- 
 1. Data: 2009-08-02 11:05:44
 Temat: int 32, int 64, java
 Od: mgk <m...@w...pl>
 Przepraszam jesli wiadomość zamieszczam w złym miejscu lub robię coś 
 nie tak. Dawno już nie korzystalem z grupy dyskusyjnej.
 
 Napisałem prosty test (kod poniżej) wykonujący po prostu miliard
 mnożeń liczby 32bitowej, oraz miliard mnożeń liczby 64bitowej. Czas
 obu operacji jest mierzony i wyświetlany. Testowałem go w środowisku
 32 oraz 64bit (oczywiście w środowisku 64bit była java 64bit).
 Testowałem na Linuxie oraz WIndowsie (czyli 4 testu w sumie Linux 32 i
 64bit, Windows 32 i 64 bit).
 Wyniki jakie dostałem dla linuxa 32bit sa zastanawiające, ale po
 kolej.
 
 Pod Windows 32bit wynik:
 time32: 1753 time64: 4880
 
 Pod Windows 64bit (i java 64) wynik:
 time32: 432 time64: 446
 
 Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 jest praktycznie rowny. Chociaz dziwi troche ze czas wykonania
 operacji 32bitowej jest 3 razy szybszy...
 Ale teraz jeszcze ciekawsze. Wynik na Linuxie 32 bit (który jest
 prawie identyczny z linuxem 64bit):
 
 time32: 426 time64: 569
 
 Nie pomyliłem się. Do napisania tego testu zainspirowały mnie wyniki
 wydajności innego mojego programu (silnika szachowego) w którym jest
 identyczna zależność (wydajność w windows 32bit jest dużo slabsza niz
 na linux 32, 64 czy windows 64. I to nawet jak nie używam long-ow).
 
 Nie rozumiem dlaczego wyniki na Linuxie 32bit są tak dobre jak na
 Linux 64bit, czy Widnows 64 bit. Albo inaczej. Dlaczego w takim razie
 na Windows 32bit są tak słabe?
 
 Czy Linux 32bit potrafi jakoś wykorzystać 64bitowe rejestry?
 Czy to w Windows 32bit coś jest "zwalone"? A może w implementacji javy
 32bit pod windows jest problem? No bo gdyby tylko o rejestry chodziło
 to czemu mnożenie 32bitowych wartości wypada i tak 3 razy wolniej pod
 windows 32bit niż w pozostałych.
 
 A oto kod (tak wiem, ze jest brzydki. To tylko program testujacy):
 
 int k = 5;
 long time = System.currentTimeMillis();
 for (int i = 0; i < N; ++i)
 {
 k = k * 13 + 12345;
 }
 time = System.currentTimeMillis() - time;
 
 long l = 5;
 long time2 = System.currentTimeMillis();
 for (int i = 0; i < N; ++i)
 {
 l = l * 13 + 12345;
 }
 time2 = System.currentTimeMillis() - time2;
 
 System.out.println("k: " + k + " l: " + l);
 System.out.println("time32: " + time + " time64: " + time2);
 
- 
 2. Data: 2009-08-02 12:15:02
 Temat: Re: int 32, int 64, java
 Od: mgk <m...@w...pl>
 Chcialem tylko jeszcze dodac ze test to byl program w Javie. 
 
 W Javie long jest zawsze 64bit.
 
- 
 3. Data: 2009-08-02 13:04:38
 Temat: Re: int 32, int 64, java
 Od: A.L. <a...@a...com>
 On Sun, 2 Aug 2009 05:15:02 -0700 (PDT), mgk <m...@w...pl> wrote: 
 
 >Chcialem tylko jeszcze dodac ze test to byl program w Javie.
 >
 
 A jak mierzyles ten czas?...
 
 A.L.
 
- 
 4. Data: 2009-08-02 13:28:51
 Temat: Re: int 32, int 64, java
 Od: "Mariusz Marszałkowski" <b...@N...gazeta.pl>
 mgk <m...@w...pl> napisał(a): 
 
 > Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 
 No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 
 > Do napisania tego testu zainspirowa=B3y mnie wyniki wydajno=B6ci innego
 > mojego programu (silnika szachowego) w kt=F3rym jest
 
 Może to przypadkiem silnik "Nesik" o którym rozmawialiśmy ostatnio na
 progszach?
 
 Pozdrawiam
 
 
 --
 Wysłano z serwisu Usenet w portalu Gazeta.pl -> http://www.gazeta.pl/usenet/
 
- 
 5. Data: 2009-08-02 13:47:55
 Temat: Re: int 32, int 64, java
 Od: A.L. <a...@a...com>
 On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski" 
 <b...@N...gazeta.pl> wrote:
 
 >mgk <m...@w...pl> napisał(a):
 >
 >> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >
 >No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 
 Lava ma metode System.nanoTime() podajaca czas z rozdzielczoscai
 nanosekundowa. Wszystkie inne sposoby licznie czasu sa funta klakow
 niewarte
 
 A.L.
 
- 
 6. Data: 2009-08-02 14:10:52
 Temat: Re: int 32, int 64, java
 Od: A.L. <a...@a...com>
 On Sun, 02 Aug 2009 08:47:55 -0500, A.L. <a...@a...com> wrote: 
 
 >On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski"
 ><b...@N...gazeta.pl> wrote:
 >
 >>mgk <m...@w...pl> napisał(a):
 >>
 >>> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >>
 >>No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >>czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >>komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 >
 >Lava ma metode
 
 Java
 
 A.L.
 
- 
 7. Data: 2009-08-02 14:13:17
 Temat: Re: int 32, int 64, java
 Od: Mateusz Loskot <s...@s...net>
 A.L. wrote: 
 > On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski"
 > <b...@N...gazeta.pl> wrote:
 >
 >> mgk <m...@w...pl> napisał(a):
 >>
 >>> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >> No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >> czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >> komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 >
 > Lava ma metode System.nanoTime() podajaca czas z rozdzielczoscai
 > nanosekundowa.
 
 O ile implementacja nanoTime() bazuje na odpowiednim API systemowym.
 
 Sun pisze [1]
 
 System.nanoTime() is implemented using the
 QueryPerformanceCounter/QueryPerformanceFrequency API (if available,
 else it returns currentTimeMillis*10^6
 
 [1] http://blogs.sun.com/dholmes/entry/inside_the_hotspo
 t_vm_clocks
 
 Pozdrawiam
 --
 Mateusz Loskot, http://mateusz.loskot.net
 Charter Member of OSGeo, http://osgeo.org
 
- 
 8. Data: 2009-08-02 14:50:46
 Temat: Re: int 32, int 64, java
 Od: A.L. <a...@a...com>
 On Sun, 02 Aug 2009 15:13:17 +0100, Mateusz Loskot 
 <s...@s...net> wrote:
 
 >A.L. wrote:
 >> On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski"
 >> <b...@N...gazeta.pl> wrote:
 >>
 >>> mgk <m...@w...pl> napisał(a):
 >>>
 >>>> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >>> No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >>> czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >>> komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 >>
 >> Lava ma metode System.nanoTime() podajaca czas z rozdzielczoscai
 >> nanosekundowa.
 >
 >O ile implementacja nanoTime() bazuje na odpowiednim API systemowym.
 
 O ile znam Linuksa, to Linuks na pewno w takie duperele sie nie bawi
 
 A.L.
 
- 
 9. Data: 2009-08-02 15:02:32
 Temat: Re: int 32, int 64, java
 Od: A.L. <a...@a...com>
 On Sun, 02 Aug 2009 15:13:17 +0100, Mateusz Loskot 
 <s...@s...net> wrote:
 
 >A.L. wrote:
 >> On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski"
 >> <b...@N...gazeta.pl> wrote:
 >>
 >>> mgk <m...@w...pl> napisał(a):
 >>>
 >>>> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >>> No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >>> czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >>> komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 >>
 >> Lava ma metode System.nanoTime() podajaca czas z rozdzielczoscai
 >> nanosekundowa.
 >
 >O ile implementacja nanoTime() bazuje na odpowiednim API systemowym.
 >
 >Sun pisze [1]
 >
 >System.nanoTime() is implemented using the
 >QueryPerformanceCounter/QueryPerformanceFrequency API (if available,
 >else it returns currentTimeMillis*10^6
 >
 >[1] http://blogs.sun.com/dholmes/entry/inside_the_hotspo
 t_vm_clocks
 >
 
 "If you are interested in measuring/calculating elapsed time, then
 always use System.nanoTime(). On most systems it will give a
 resolution on the order of microseconds. Be aware though, this call
 can also take microseconds to execute on some platforms."
 
 A.L.
 
- 
 10. Data: 2009-08-02 15:04:20
 Temat: Re: int 32, int 64, java
 Od: Mateusz Loskot <s...@s...net>
 A.L. wrote: 
 > On Sun, 02 Aug 2009 15:13:17 +0100, Mateusz Loskot
 > <s...@s...net> wrote:
 >
 >> A.L. wrote:
 >>> On Sun, 2 Aug 2009 13:28:51 +0000 (UTC), "Mariusz Marszałkowski"
 >>> <b...@N...gazeta.pl> wrote:
 >>>
 >>>> mgk <m...@w...pl> napisał(a):
 >>>>
 >>>>> Czyli jak mozna sie bylo spodziewac czas operacji w srodowisku 64bit
 >>>> No właśnie, zrób lepszy pomiar czasu. Zmierz czas pracy procesora, a nie
 >>>> czas który upłynął od startu do zakończenia. Pod linuxem jest spacjalna
 >>>> komenda, chyba "times". Pod windowsem nie umiem nic doradzić.
 >>> Lava ma metode System.nanoTime() podajaca czas z rozdzielczoscai
 >>> nanosekundowa.
 >> O ile implementacja nanoTime() bazuje na odpowiednim API systemowym.
 >>
 >> Sun pisze [1]
 >>
 >> System.nanoTime() is implemented using the
 >> QueryPerformanceCounter/QueryPerformanceFrequency API (if available,
 >> else it returns currentTimeMillis*10^6
 >>
 >> [1] http://blogs.sun.com/dholmes/entry/inside_the_hotspo
 t_vm_clocks
 >>
 >
 > "If you are interested in measuring/calculating elapsed time, then
 > always use System.nanoTime(). On most systems it will give a
 > resolution on the order of microseconds. Be aware though, this call
 > can also take microseconds to execute on some platforms."
 
 Tak, właśnie o tym pisałem, że przed użyciem warto
 zweryfikować czy "black box" nanoTime() na danej platformie
 robi to, czego się oczekuje.
 
 Pozdrawiam,
 --
 Mateusz Loskot, http://mateusz.loskot.net
 Charter Member of OSGeo, http://osgeo.org
 


 do góry
 do góry![5 błędów, które mogą pogrążyć twój artykuł natywny [© DDRockstar - Fotolia.com] 5 błędów, które mogą pogrążyć twój artykuł natywny](https://s3.egospodarka.pl/grafika2/artykul-natywny/5-bledow-ktore-moga-pograzyc-twoj-artykul-natywny-229455-150x100crop.jpg) 
![Linki dofollow i nofollow - jakie są różnice i czy linki nofollow mają sens? [© amathieu - fotolia.com] Linki dofollow i nofollow - jakie są różnice i czy linki nofollow mają sens?](https://s3.egospodarka.pl/grafika2/linki-sponsorowane/Linki-dofollow-i-nofollow-jakie-sa-roznice-i-czy-linki-nofollow-maja-sens-227269-150x100crop.jpg) 
![Jak przygotować mailing, aby nie trafić do spamu [© faithie - Fotolia.com] Jak przygotować mailing, aby nie trafić do spamu](https://s3.egospodarka.pl/grafika2/mailing/Jak-przygotowac-mailing-aby-nie-trafic-do-spamu-217419-150x100crop.jpg) 
![Koniec rękojmi w sprzedaży konsumenckiej [© Africa Studio - Fotolia.com.jpg] Koniec rękojmi w sprzedaży konsumenckiej](https://s3.egospodarka.pl/grafika2/ustawa-o-prawach-konsumenta/Koniec-rekojmi-w-sprzedazy-konsumenckiej-250738-150x100crop.jpg) 
 Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei
Elektromobilność dojrzewa. Auta elektryczne kupujemy z rozsądku, nie dla idei 
 
 
 
![Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie [© wygenerowane przez AI] Milion na koncie? Wystarczyło inwestować po około 2 tysiące miesięcznie](https://s3.egospodarka.pl/grafika2/oszczedzanie-pieniedzy/Milion-na-koncie-Wystarczylo-inwestowac-po-okolo-2-tysiace-miesiecznie-269397-150x100crop.jpg) 
![Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy [© pixabay] Wynajem mieszkania w Warszawie pochłania 44% pensji. Zobacz, jak wypadamy na tle Europy](https://s3.egospodarka.pl/grafika2/rynek-najmu/Wynajem-mieszkania-w-Warszawie-pochlania-44-pensji-Zobacz-jak-wypadamy-na-tle-Europy-269391-150x100crop.jpg) 
![Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie? [© wygenerowane przez AI] Lot z niespodzianką - jak overbooking zmienia podróż i jakie prawa mają pasażerowie?](https://s3.egospodarka.pl/grafika2/prawa-pasazera/Lot-z-niespodzianka-jak-overbooking-zmienia-podroz-i-jakie-prawa-maja-pasazerowie-269384-150x100crop.jpg) 
![Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu [© wygenerowane przez AI] Lider z sercem: empatia i zaufanie jako klucz do sukcesu zespołu](https://s3.egospodarka.pl/grafika2/lider/Lider-z-sercem-empatia-i-zaufanie-jako-klucz-do-sukcesu-zespolu-269133-150x100crop.png) 
![Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam? [© wygenerowane przez AI] Bańka AI za 5 bilionów dolarów: Kiedy inwestorzy powiedzą: sprawdzam?](https://s3.egospodarka.pl/grafika2/AI/Banka-AI-za-5-bilionow-dolarow-Kiedy-inwestorzy-powiedza-sprawdzam-269382-150x100crop.png) 
 


