[FreeBSD] erdemes -e mindent a ports -bol?
Hajdú Zoltán
hajduzoltan at bsd.hu
2001. Jan. 9., K, 01:12:59 CET
>> Ja, ha király p6/k7 kód kell, kénytelen vagy __asm -mel nekiesni.
>> Anno a linux-flame-en flame-eltem egy joizut, hogy a GTK-ban es az X-ben
>> legalabb sokat hasznalt a pixel es a fillezo rutinokat atirhatnak asm-ra,
>> mert nem olyan egetrengetoen nehez, plane ha az ember kozepiskolas, es raer.
>> A vitanak persze sok foganatja nem volt...
>> P.S.: Te szeretsz __asm-ban programozni?... brrrr. Ez valami olyasmi, mintha
>> a gepet megkernem, hogy ugyan forditsa mar le maganak amit csinalnia kell
>> miutan sima emberi nyelven lediktaltam neki, mert nekem igy konnyebb...
Na, az igazság az, hogy igen. Régebben is abban (ASM) programoztam, s a C meg a
Java csak késõbb, a platformfüggetlen divattal jött nálam. Aztán amikor a múltkor
csatarendbe állt otthon a K7 a 486 helyett, szinte leestem a székrõl, mikor is NEM
volt olyan nagy a sebességgyorsulás, amit vártam, holott van vagy 700 Mhz és vagy
3 generáció különbség a két proci között (nem kis változásokkal). S ezen még az
sem segített, ha néhány programot optimalizálva fordítottam is le. Pedig tudom azt,
hogy ASM-ben programozva csodákat lehet mûvelni: talán emlékeznek néhányan a
pixelrajzolórutinoknál alkalmazott bitshifting technikára a sima szorzós ellenében, ami
5-7-szer gyorsabban számolta ki a pont helyét a képernyõn, vagy hogy pentium
procikon a két ALU miatt a helyesen megválasztott kódsorrend 2x -es sebességet
eredményez, mivel mindkét ALU-t meg tudja hajtani. Bár az újabb procikat nem
ismerem, de olyanokat írogatnak szakmai helyeken, hogy pl. az AMD 3dnow! a
lebegõpontos számokkal sokkal gyorsabban dolgozik mint a szintén a prociban lévõ
x87 - s mivel SIMD, egyszerre többel is. Valahogy hiányolom ezeket a dolgokat a mai
programozásból. S az igazság az, hogy ASM-el is lehet nagyobb projekteket
készíteni, struktúrálisan programozva, a már megírt és jól dokumentált rutinokat
újrafelhasználva. S a core X rutinokat is meg lehetne írni ASM-ben, ha eléggé
moduláris lenne az X felépítése ahhoz, hogy fordításkor vagy runtime az adott
procira optimalizált kódrészletet használná fel. De nem az. Sajna. Nem véletlen, hogy
a Java - remélem ezért néhányan nem tûznek ki a fejemre vérdíjat - haldoklik:
egyszerûen a fejlesztõknek elege van - a Sun szenvedései mellett - abból, hogy nem
lehet teljesítményigényes, stabil programokat írni benne (egy jó cikk errõl egy pár
számmal ezelõtti Új Alaplapban, Java vallomások címmel). A C-vel meg az a gond,
hogy nincs hozzá - legalábbis BSD-re - jó fordító, mert IMHO a gcc nem az igazi.
Portolhatóság? Az okosan megírt programok IMHO portolhatóak az adott
architechtúrán belül - a felhasználói interface úgyis az OS objektumainak
meghívogatásából épül fel, az meg megy ASM-bõl is. (Egyébként vannak jó library-k
erre, pl. a GLUT, ami OS-tól függetlenül egységesen kezeli az ablakokat meg a
grafikus komponenseket).
Üdv:
Hajdú Zoltán
Miskolci Egytem, stb., stb.
További információk a(z) BSD levelezőlistáról