Dalsi zahada v C -> Prevod long int na string

Jan Waclawek konfera na efton.sk
Pondělí Červenec 25 10:47:10 CEST 2011


>On 24.7.2011 22:38, Jan Waclawek wrote:
>> To je sice pekne, ale povodna staznost bola na pomalost. Optimalizacia uz potom nie je zalezitost par minut a je strojovo zavisla.
>
>Aha, takze riesenim je asi vyplakavat po roznych forach.


Svojim sposobom ano. Napriklad v tomto pripade to podla vsetkeho aspon ciastocne zabralo... ;-)


>A kde beriete istotu, ze tieto funkcie - ktore ste mimochodom odporucali 
>aj VY SAM - budu v knizniciach implementovane inac? Namatkovo som pozrel 
>implementaciu vo vasom oblubenom SDCC a tam je implementovana IMO este 
>horsie.


To je sice pravda, ale v mojom oblubenom SDCC na mojej oblubenej platforme '51 je k dispozicii poltucet optimalizovanych verzii printf(), cim sa bud riesi povodny problem, alebo to itoa sa z nich da pomerne jednoducho vyoperovat.
http://sdcc.sourceforge.net/doc/sdccman.html/node94.html

>Mimochodom, povodna staznost nebola na rychlost itoa, ale na rychlost 
>printf (tuto cast ste rafinovane odmazali). 

Uprimne povedane si povodnu otazku nepamatam a odpovedal som na Vas posledny prispevok, kde to uz nebolo. Je mozne, ze som to odmazal ja sam kedysi pred tyzdnami. Moja strednodoba pamat je momentalne v takom stave, ze obcas ked chcem odpovedat na nejaku otazku, tak najprv guglim, ci sa neda odpovedat nejakym brisknym linkom a s hrozou zistujem, ze som na podobnu otazku pred nejakym casom pisal pomerne rozsiahle pojednanie, a vobec si to nepamatam... :-(

Takze ano, mate pravdu, treba si najprv overit, ze ci printf z kniznice nie je nahodou uz dostatocne vyoptimalizovane.


>Tazatel sa iba domnieval ze 
>algoritmy s delenim budu pomale. Sancu vyskusat itoa a spol. nermal, 
>lebo jeho kniznice ich nemaju. Tak som mu nejaku implementaciu ponukol. 
>Co vas na tom tak sere?

Len to, ze to nesplnalo povodnu predstavu, t.j. implementaciu bez delenia. Naviac nemam rad C, t.j. podla mna maju byt kniznicne funkcie pre 8-bity (a aj pre 16-bity typu MCS430 :-) ) optimalizovane na urovni asembleru.


>Neviem, ktore riesenie bude na danej platforme najrychlejsie, zavisi to 
>hlavne od rychlosti implementacie delenia. Ale to sa da zistit velmi 
>jednoducho - vyskusat.

Ano, ale to uz nemusi byt par minut... 

>
>Len pre zaujimavost, na mojej testovacej x86_64 virtualke (ktora ma, 
>samozrejme, HW delenie) trvalo 1000 prevodov celeho rozsahu -32767 az 
>32767 (t.j. 65534000 prevodov):
>
>verzia s delenim (a HW delenim): ~2.6 sekundy
>verzia s odpocitavanim po radoch s tabulkou: ~4 sekundy
>verzia s odpocitavanim po radoch 4 cykly po sebe: ~2.1 sekundy ---> VITAZ

To je vskutku necakane.

wek



Další informace o konferenci Hw-list