Jacek Czerwinski
4/16/2007 4:14:00 PM
Dnia Mon, 16 Apr 2007 14:57:33 +0200, Any User napisa3(a):
>> Pisze aplikacje graficzna na pewne urzadzonko w C.
>> Poniewaz programowo maluje duzo po ekranie, a procesor
>> wolny potrzebuje rysowac jak najszybciej.
>> Jak sprawic by kompilator zaimplementowal:
>>
>> memcpy(memoryBuffer, myBuffer, sizeof(char));
>>
>>
>> nie jako:
>> rep stosb; //kopiuje N bajtow
>> a jako:
>> rep stosd; //kopiuje N/4 podwojntych slow
>>
>>
>> myBuffer ma oczywiscie rozmiar podzielny przez 4.
>> Ta druga instrukcja dziala znacznie szybciej.
>
> Przeszukaj sobie ró?ne implementacje [g]libc. O ile pamietam, s? tam
> implementacje próbuj?ce kopiowaa po 4 bajty, je?li na danej
> architekturze jest to mo?liwe i korzystne.
Kiedy? widzia3em, ale funkcja na rozbiegu ocenia3a czy adres zaczyna sie
bajtu,s3owa,póls3owa, wybiera3 odnogi algorytmu itd. Musz? bya duze bloki
zeby sie op3aca3o.