- A hozzászóláshoz be kell jelentkezni
- 6684 megtekintés
Hozzászólások
*2002 óta (14 éve)
____________________________________
Az embert 2 éven át arra tanítják hogyan álljon meg a 2 lábán, és hogyan beszéljen... Aztán azt mondják neki: -"Ülj le és kuss legyen!"..
- A hozzászóláshoz be kell jelentkezni
Lehet, hogy érdekes lesz a nyomozás eredménye, de szerintem nem olyan nagy ez a növekedés. Ahogy látom 2-5-ös szorzóról van szó, miközben a hardver teljesítmény több százszorosára nőtt.
--
ulysses.co.hu
- A hozzászóláshoz be kell jelentkezni
Na de attol meg a kodnak nem kell nonie. :)
- A hozzászóláshoz be kell jelentkezni
Ha belegondolsz a 16bit -> 64bit és máris van egy 4-es szorzó. ;)
- A hozzászóláshoz be kell jelentkezni
A 16b->64b nem jelenti azt, hogy az utasitasok merete is igy valtozott, es szerintem az i386 es a sun3 soha sem volt 16b.
- A hozzászóláshoz be kell jelentkezni
Szerintem ez csak egy vicc volt. :)
- A hozzászóláshoz be kell jelentkezni
Tényleg ott a szmájli!
- A hozzászóláshoz be kell jelentkezni
Szamomra nem volt egyertelmu. Igy legalabb senki sem fogja ez alapjan azt gondolni, hogy a 64b-es kod mindig ketszer akkora mint a 32b-es.
Persze mint tudjuk a mai gepekben azert van olyan sok bit, hogy ne legyenek tul gyorsak. A valodi hackerek ezert hasznalnak C64-et WGA-val. :)
- A hozzászóláshoz be kell jelentkezni
Tobb memoria -> tobb mindent lehet inlineolni es unroll -olni.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Tisztaban vagyok vele, hogy ha van tobb memoriad akkor azzal sok esetben tudod csokkenteni a munkat a processzorod szamara. Ez viszont nem jelenti azt, hogy ha gyorsabb processzorod van akkor elned is kell ezekkel a lehetosegekkel. A novekvo memoria hasznalatnak a novekvo memoriahoz van koze, nem pedig a novekvo processzor teljesitmenyhez.
Amugy nem zavar, hogy tobb memoriat hasznalnak a modern rendszerek. Egyreszt vannak azok az esetek amikor processzor idot nyersz vele (inlining, CPU dispatch, lookup tables), masreszt sok esetben a programozo ideje dragabb mint a memoria amit meg lehetne sporolni.
- A hozzászóláshoz be kell jelentkezni
+1 utálom amikor a memória miatt sírnak az emberek, hogy 1GB ram kevés desktopba meg hasonlók. Mindezt akkor amikor már egy tisztességesebb telefonban van 2GB, egy normálisabb desktopban meg 16, ráadásul a desktop ram a legolcsóbb része a gépnek.
- A hozzászóláshoz be kell jelentkezni
Nem a memóriamérettel van a probléma általában, hanem annak felhasználási módjával. Valamikor 2000 környékén szembesültem elöször azzal a ténnyel, hogy s memória is fragmentálódik. Már nem emlékszem kristálytisztán, de egy Compaq Proliant szerver-en futó SQL-adatbáziskezelö sírt, hogy nincs elég memóriája az akkori 64 GB-on, ami rengetegnek számított. A probléma oka valójában az volt, hogy a 64 GB-ban nem volt egyetlenegy összefüggö szabad 300 MB-nyi terület sem. Aztán valami script-tel on-the-fly defragmentálva lett a memória, és lenyugodott.
Ma is a rendszerek többsége cache-nek használja a memória nagy részét, mert általában nem futtat senki Sem annyi mindent párhuzamosan, amivel értelmesen ki lehetne használni akárcsak pl. a 8 GB-os memóriát.
A kódméret nö, ami odáig vezet, hogy pl. Ubuntu 16.04-hez kell az SSD, hogy ha megnyitsz egy Nautilus-t, kvázi azonnal megjelenjenek az ikonok az ablakban, és nem egy mp-el késöbb. Mert többmegányi minden, és idöre van szükség annak beolvasásához. Szerencsétlen processzorok idejük 99.99%-át várakozással töltik.
--
robyboy
- A hozzászóláshoz be kell jelentkezni
https://en.wikipedia.org/wiki/Page_%28computer_memory%29#Huge_pages
Ez azért szomorú, mert mint a linkelt táblázat alapján valószínűsíthető, az általad használt rendszer 4K-s memória lapokat használ. Ami azt jelenti, hogy 4K fizikai memória leképezhető bármilyen lineáris címterületre. Tehát nem volt a rendszerben 300*250db érintetlen lap. Ami persze simán lehetséges, ha minden lapból csak néhány byte-ot használok ki, de nagyon elvetemülten hangzik. :) (Vagy valami teljesen más dolog van a háttérben amiről nem tudok.)
Szerk:
"Aztán valami script-tel on-the-fly defragmentálva lett a memória"
Ez azért nem lehetséges, mert a lineáris címterület van fragmentálódva, tehát konkrétan a programok által használt pointerek. Ha ezt egy script meg tudja gyógyítani, ott biztos nem az van amit én gondolok.
- A hozzászóláshoz be kell jelentkezni
1. A legtobb alkalmazas nem adja vissza a kisebb egysegekben lefoglalt memoriat a rendszernek.
2. brk() val fokalt memoria nem felszbadithato az elso hasznalat utan, anon mmap -al foglalat-ak lennek az elvben felszibadithatoak (tipikusan nagyobb foglalasokra hasznalt)
3. fregmantalodas miatt bukhatod memoriad felet, ettol tobbet bukni abnormalis
4. Vannak fura DB-k furra szokasokkal, ne keres bene logikat ;)
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Preallocating megoldásokat nézegettem már, de bele se gondoltam hogy libc/syscall szinten is van ilyesmi. :) Tök logikus, de amúgy az a legjobb, ha ez az alkalmazásban tudatosan is szabályozva van. (mert honnan tudná a libc hogy én mit akarok azzal a memóriával)
- A hozzászóláshoz be kell jelentkezni
Nagyon sok malloc implementáció is olyan, hogy nem adja vissza a lefoglalt majd felszabadított memóriát a rendszernek.
- A hozzászóláshoz be kell jelentkezni
glibc alapbol DEFAULT_MMAP_THRESHOLD 128*1024 (byte) (minusz a foglalasi egyseg leiro) tol kisebb memoriat, nem adja vissza a rendszernek free(3) utan. Ujabb malloc(3) hivas eseten az app ujra felhasznalhatja.
Ettol nagyobb foglalasi egyseget vissza add, a rendszer `ujra keverheti` a lapokat .
(Default mukodes, elso kozelitesben)
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
A memoriafoglalas kulon tudomany. Direkt a fragmentalodas ellen kitalalt modszer pl a jemalloc.
--
ulysses.co.hu
- A hozzászóláshoz be kell jelentkezni
Az az sql szerver simán szar volt valamilyen okból. Ha valami bekajál 64GB ramot akkor azért jó lenne ha nem csinálna ilyeneket. Főleg, hogy valami scripttel sikerült megoldani a dolgot. Foglalgatott memóriát és direkt keveset írt egy lapba vagy ezt, hogy hozta össze?
- A hozzászóláshoz be kell jelentkezni
Ha jól tudom, akkor x86-on a branch prediction megjelenése óta (Pentium 1) nem érdemes unroll-olni.
- A hozzászóláshoz be kell jelentkezni
A jol tippelt ugras is dragabb, mint nem ugrani, ill. az ugrasi feltel kezelese is jar nemi plusz utasitasal.
unroll miatti cache hasznaltnak lehetnek karos hatasai, tenyleges adatokat nem tudok.
Valamint a tobb regisztert tudsz hasznalni unroll -al, igy az utasitasok jobban parhuzmasithatoak lesznek a cpu altal.
Amit nem lehet megirni assemblyben, azt nem lehet megirni.
- A hozzászóláshoz be kell jelentkezni
Köszi az infókat. :)
- A hozzászóláshoz be kell jelentkezni