-Os
Tomasz Pala
gotar w polanet.pl
Czw, 24 Kwi 2003, 23:27:24 CEST
On Thu, Apr 24, 2003 at 21:36:14 +0200, Mariusz Mazur wrote:
> Ktoś czuje się na siłach dyskutować z takimi argumentami? Bo jam przekonany :)
Gdyby ktoś miał ochotę to proszę wcześniej przeczytać:
slrnb9u2i2.deg.gotar w os.mil.gov.pl
slrnba7rsc.of7.gotar w os.mil.gov.pl
http://www.gnu.org/software/gcc/projects/prefetch.html
slrnba7fqt.5l4.gotar w os.mil.gov.pl (s/malign/mpreferred-stack-boundary/)
http://freshmeat.net/articles/view/730/
[...]
`-Os'
[...]
http://developer.apple.com/techpubs/macosx/DeveloperTools/gcc3/gcc/i386-and-x86-64-Options.html
[...]
-mpreferred-stack-boundary=num
[...]
slrnba3a91.p6v.gotar w os.mil.gov.pl
Trochę błędów w moich postach może być, bo na początku się jeszcze
dokształcałem, a na końcu już mi to bokiem wychodziło.
Zaś w skrócie:
1. programy liczące; dużo siedzenia w krótkich pętlach na długim
przedziale czasu: -O2
2. programy-krowy; długie pętle o małej liczbie przebiegów: -Os
3. programy czekające na akcję użytkownika: -Os
Uzasadnienie:
1. krótki kod mieści się bez żadnej pomocy w cache, a wyleci z niego nie
za sprawą niezmieszczenia się, a shedulera. Ważne jest szybkie
wykonanie, a więc skoki i obsługa stosu. Obrabia dane wielokrotnie
większe od samego kodu.
2. Strata kilku cykli na obsłużenie gorzej alignowanego stosu i paru
skoków jest niczym, wobec czekania na kod pobierany z RAM-u zamiast
L1/L2.
3. pojęcie wydajności nie istnieje (co to jest wydajność hdparma czy
lynxa?). Istotne jest, aby nie zabierać pamięci innym procesom i
buforom oraz, co ważniejsze, nie rugować z cache wartościowych
linijek kodu innych programów (choćby funkcji systemowych).
--
GoTaR <priv0.onet.pl->gotar> USA sux
...Dżahilijja... znowu? Nadal...
PLD stuff at http://mops.uci.agh.edu.pl/~gotar/
Więcej informacji o liście dyskusyjnej pld-devel-pl