Hírek | Archívum | Fórum | IRC | Amiga | AmigaOS | FAQ | RSS

 - Fórumok - Keresés - Statisztika - Szabályzat - Pegasos.hu fórum
forum.amigaspirit.hu / Classic AmigaOS / TLSFMem O(1) Memory Allocator
Szerző Üzenet
Chain-Q
Divatamigás

# Elküldve: 2007. Okt. 16. 10:37


Valaki kiprobalta mar? Nekem nem volt idom classicozni a napokban. Chris Hodges, a Poseidon USB stack keszitoje implementalta ezt a patchet classic rendszerekhez 68k assemblyben, amelyik az exec.library memoriakezelo fuggvenyeinek lecserelesevel elmeletileg sokszorosara kepes gyorsitani a memoriafoglalasokat es felszabaditasokat, hiszen amellett, hogy assemblyben van, nem a Commodore-fele iszonyat lassu lancolt lista parsolos algoritmust hasznalja, hanem egy bazigyors O(1) algoritmust, ahol az O(1) azt jelenti, hogy a foglalt memoriablokkok szamatol fuggetlenul azonos idot visz el a foglalas, mig a C=-fele eredeti exec.library-s fuggvenyek O(m) algoritmussal mukodnek, vagyis a lefoglalt memoriablokkok szamatol fuggoen linearisan lassul a memoriafoglalas.

A temarol szolo Amiga.org-os topicban azt irjak, hogy bizonyos esetekben hatekonyabb, vagy azonos hatekonysagu, mint az OS4 slab-allocator rendszeru memoria alrendszere. Ez nem tudom igy van-e, de ha a fele igaz, mar az is durva. :) Majd ha lesz idom eljatszok vele, de eddig nem volt.

Chain-Q
Divatamigás

# Elküldve: 2007. Okt. 16. 23:41


Na, egyreszt elso postom a forumra classic geprol (A2000), masreszt meg futik a TLSFMem, es eleg jaul zorog. A gep nemigazan akar se belassulni, se fragmentalodni szarra, pedig itt zuzom a MUI-s warekkal egy ideje. Bar a cucc eleg nyugos a konkurens patchekre (valahol ertheto modon), szoval vegulis lemondtam par masik exec patchrol (pl. SystemPatch), es kihasznaltam a TLSFMem-nek azt a funkciojat, hogy pl. BlizKick-kel bele lehet gyomoszolni a ROM-ba. Igy most jol megy. Eddig fagyni se fagyott, marmint, miota kiirtottam az egyeb patcheket, amikre haklis volt. :)

dh1
Mr. DTP

# Elküldve: 2007. Okt. 17. 11:30


Kiprobalom en is!

Chain-Q
Divatamigás

# Elküldve: 2007. Okt. 17. 11:47 - Szerkesztve: charlie


dh1: allitolag nem megy, ha PPC-s OS van a hatterben (marmint WOS vagy PUP), ami ertheto, ha mondjuk a PPC-s OS maga kezelne a memorialistat, es feltetelezi, hogy ugy mukodik mint a hagyomanyos exec, ami jelen esetben tok inkompatibilis a TLSFMem-mel. :) De kiprobalni nem tudtam, mer' a PPC-s classicon ami itt van, csak MorphOS van, a 3.x-es gepeimben meg nincs PPC.

rachy
Tag

# Elküldve: 2007. Okt. 19. 16:14


Chainq: es nem hasal el tole az a par program, amivel gond volt OS4 alatt a (hasonlo elven mukodo) memoriarendszer miatt? Nehany program ugyanis ugy gondolja, hogy majd megoldja a rendszer helyett a memoriakezeles problemajat... (Ld. FinalWriter)

Artlace
Tag

# Elküldve: 2007. Okt. 19. 16:50


@Rachy: Az ilyen programok nem elkerik a legnagyobb szabad teruletet hanem az exec listaiba nyulnak csak ugy bele? nem is tudom kinek kene a kezere utni nagyobbat: aki kitalalja vagy aki engedi...

Az ImageMaster allitolag ugy operal hogy elker amit csak tud, majd "swappel" diszkre is. Kivancsi lennek tenyleg igy van-e.

rachy
Tag

# Elküldve: 2007. Okt. 19. 19:50


Artlace: ImageMastert nem ismerem, de sok program von le messzemeno kovetkezteteseket abbol ahogy a rendszer 3.x alatt a memoriat kezeli. Peldaul megnezik, hogy mekkora legnagyobb foglalhato blokk ugy, hogy vegig futnak a listan. Vagy az AllocVec() fuggveny helyett arra tamaszkodnak, hogy a rendszer a foglalt memoriablokk ele irja annak hosszat es az alapjan szabaditjak fel a helyet, vagy "atmeretezik" a blokkot.

Ezek eleg sok problemat okoztak/okoznak az ujabb rendszereken, persze a felhasznalok ezt ugy latjak, hogy az uj rendszerek hibaja, elvegre a program teljesen jol mukodott 3.x alatt... Aztan elmagyarazni nekik miert egy hatalmas bugware a kedvenc programjuk - ez nem egyszeru.

Chain-Q
Divatamigás

# Elküldve: 2007. Okt. 19. 22:59 - Szerkesztve: charlie


Ezeknek a "behaviour"-oknak egy resze emulalhato TLSF allokatorral is. Pl. a lancolt lista maga (ha nem is a listaban valo turkalas, tehat uj blokk befuzese), vagy az, hogy a foglalt blokk ele irjuk a meretet. (Erre pl. a GoldEd 6 epit, sok mas kozott, AFAIK). Ironikus modon az egyetlen program, amit en probaltam vele, es kapasbol fagyassal nyitott, az a Commodore-fele scsi.device, mert felulirja a foglalt blokk mogotti RAM-ot, mert tul keves memoriat foglal vmi IORequestnek. De ezt irja is a TLSFMem readme-je, es van benne hozza patch. Szerencsere A2k-n nincs C=-fele scsi.device, csak az "uberbugware" phase5-fele, de vicces modon, az meg hibatlanul uzemel. :) Ja es a masik, ha az MCP-fele PatchControl utan inditom a cuccot, akkor is fagy. Egyebkent jol megy. :)

Egyebkent abban is eleg jopofanak es eleg hulyebiztosnak tunik az implementacio, hogy barmikor elindithato a cucc, mar futo rendszeren is! Szoval kepes dolgozni a sima OS-fele listakkal is. Nem szedtem szet, ezert nem tudom pontosan meddig lehet elmenni vele, de "hetkoznapi" Amigas alkalmazasokkal hasznalva az A2000-m remekul uzemel vele. Ja es ROM szinten, BlizzKick modulkent, mar indulastol kezdve hasznalom.

forum.amigaspirit.hu / Classic AmigaOS / TLSFMem O(1) Memory Allocator
 
 

Powered by community script miniBB™ © 2001-2020