Hirdetés

Új hozzászólás Aktív témák

  • Jester01
    veterán

    Amit nem ertek, az az, hogy hogy a csudaba lesz a java gyorsabb. Megneztem magamnal is, a konkret loop, amit mer, arra ezt a kodot generalja a gcc:

    .L14:
    movsd 0(%rbp,%rdx), %xmm1
    ucomisd %xmm2, %xmm1
    jbe .L11
    addsd %xmm1, %xmm0
    .L11:
    addq $8, %rdx
    cmpq $800000000, %rdx
    jne .L14

    Hogy ennel mi lehet gyorsabb, arrol fogalmam sincs, marpedig a java (legalabbis a rendezetlen tombnel) tenyleg gyorsabb egy jo 7-8%-kal.

    Ez tényleg elég meglepő, de én is tudtam reprodukálni.
    Elsőre rávágtam, hogy a java biztos elágazás-mentes kódot generál, de ha kicsit átírtam, hogy a gcc-nek is feltűnjön ez a lehetőség attól ugyan gyorsabb lett de még nem java szintű. Sőt, még durvább optimalizációval egy iterációban 8 elemet ad össze és még így is lassabb.

    A random tömböt egyébként kicseréltem, hogy mind a két implementáció azonos számokkal dolgozzon (és mindig ugyanazokkal).

Új hozzászólás Aktív témák