Hollosi Information eXchange /HIX/
HIX CODER 2362
Copyright (C) HIX
2006-02-13
Új cikk beküldése (a cikk tartalma az író felelőssége)
Megrendelés Lemondás
1 Re: *** HIX CODER *** #2361 (mind)  85 sor     (cikkei)

+ - Re: *** HIX CODER *** #2361 (mind) VÁLASZ  Feladó: (cikkei)

Thus spake HIX CODER >:

>> Az 0-val osszehasonlitas gyorsabb mindenfajta
>> procin, es a forditonak is konnyebb dolga van vele.
>> Tehat: kevesebb hiba, es az utasitas-atlapolas is jobb > lesz.
>
> Ezekben te egeszen biztos vagy??

Igen, a 0 ellenorzese a processzorok 99.9 szazalekan gyorsabb.
Az elenyeszo szamu maradekban ugyanolyan, tehat lassabb sohasem lesz.
Nezd meg mit fordit a fordito, tanulmanyozd a proci utasitaskeszletet.
Termeszetesen csak nagyon egyszeru ciklusok eseten jelentos a kulonbseg.
Pl egy sima memoria-masolasnal tobb 10% is lehet, egyebkent joval kisebb.
(Egyebkent ez baromi alap dolog, minden kezdo C kurzusban emlitik...)
Ja es sok procinak van specialis ciklusszervezo assembly utasitasa, az
osszes amit ismerek, MIND lefele szamol.

> A forditonak konnyebb dolga van. Szegeny, nehogy mar elfaradjon. Inakabb kezz
el
>  mikrooptimalizalok assembly-ben.

Ez egyfajta optimalizalas...
Nem az a lenyeg, hogy a fordito ne faradjon el :), hanem ha konstanssal
kell hasonlitgatni, az a modern load/store architekturas RISC procikon
jo esellyel egy plusz regisztert igenyel, amit nem tud masra hasznalni
kozben -> lassu, szar kod. Arrol nem is beszelve, hogy abba a regiszterbe
direkt vagy PC relativ vagy hasonlo cimzessel kell betolteni a konstanst,
mert sok procin egyaltalan nem lehet immediate betolteni, osszehasonlitani
foleg. Nem mindegy, hogy ezt a ciklus elejen 1x, vagy minden lefutaskor
meg kell csinalni.

> Kevesebb hiba: miert is??
> A 0-val valo osszehasonlitas: hanyszor nezted meg, hogy egy fordito milyen ko
do
> t general a C forrasodbol? Meg fogsz lepodni. Akarmennyire probalkozol, _nem_
 t
> udod megmondani, hogy milyen kodot fog generalni. Ha epp ugy jon ki a lepes, 
me
> g veletlenul sem lesz benne az a teszt, amit te C-ben irtal.

Dehogynem, siman megmondhato. Nem olyan misztikus egy fordito mukodese.
Ebbol is az latszik hogy te nem szoktad megnezni a forditas eredmenyet :)

> Szoval roviden: felesleges mikrooptimalizalni C-ben.

Nehany sorral feljebb meg optimalizalni akartal, kicsit kusza lett ez
a level. Egyebkent mit ertesz mikrooptimalizalas alatt?

> Eloszor algoritmikus optimalizalas, utana esetleg profiling es kezzel ujrairo
d
> asm-ban a lassu reszeket. De ez utobbival csak akkor kell probalkozni, ha mas
ho
> gy semmikeppen nem tudod megoldani, mert konnyen elofordulhat, hogy a te kezz
el
>  optimalizalt valtozatod lassabb lesz...

Ez termeszetesen nem fordulhat elo. Kezzel, nemi gondolkodassal MINDEN
FORDITOT meg lehet verni. Legfeljebb olyan sokat kell tokolni rajta,
hogy egyszeruen nem erdemes, mert sohasem terul meg.
Kozismert tevedes, hogy a forditok hu de jol optimalizalnak.
Ezt csak megerositi, hogy kezdokent belenezve a forditott kodba, az
zavarosnak, erthetetlennek tunik, konnyen azt hiheti az ember, hogy
szandekosan ilyen, mert ez jobb valamiert. Nem igy van.
A kod altalaban zavaros, de ez sima benasag, az optimalistol is messze van.
Kezzel jo esellyel lehet irni nem csak gyorsabb, de sokkal jobban ertheto
kodot is. Ne gyere azzal, hogy a cache, meg a pipeline, meg a sok
regiszter. Minden szempont kezelheto kezzel, semmi problemat nem okoz,
rutin kerdese.
A gyartok mindig adjak a procikhoz/forditokhoz a kis C libraryt, amiben
KEZZEL OPTIMALIZALVA meg vannak csinalva a fontosabb aritmetikai
muveletek stb.., vagy akar FFT algoritmus. Termeszetesen ra lehetne
bizni ezeket is a forditora, de az egyebkent hasznalhato fordito az
ilyen kritikus reszekbol altalaban turhetetlenul szart fordit, ezert
nem erdemes, maga a gyarto sem ajanlja.

> Bocs a kioktatasert, de erdemes neha megnezni, hogy mit general a fordito...

Na ja :)
En is bocs a kioktatasert, el is huzok egy hetre az Embedded World-re...

> Szabi

--
Valenta Ferenc <vf at elte.hu>   Volcano - Mentor Graphics - MES
"Mindig jo, ha bajba jutsz, hogy ha orditsz s korbefutsz!"

AGYKONTROLL ALLAT AUTO AZSIA BUDAPEST CODER DOSZ FELVIDEK FILM FILOZOFIA FORUM GURU HANG HIPHOP HIRDETES HIRMONDO HIXDVD HUDOM HUNGARY JATEK KEP KONYHA KONYV KORNYESZ KUKKER KULTURA LINUX MAGELLAN MAHAL MOBIL MOKA MOZAIK NARANCS NARANCS1 NY NYELV OTTHON OTTHONKA PARA RANDI REJTVENY SCM SPORT SZABAD SZALON TANC TIPP TUDOMANY UK UTAZAS UTLEVEL VITA WEBMESTER WINDOWS