-Os

Michal Moskal malekith w pld-linux.org
Śro, 30 Kwi 2003, 21:48:35 CEST


On Sat, Apr 26, 2003 at 08:17:54PM +0200, bajcik w kolos.math.uni.lodz.pl wrote:
> On Thu, Apr 24, 2003 at 11:27:24PM +0200, Tomasz Pala wrote:
> > 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.
> 
> z ciekawości: a możeby tak zwiększyć kawałki czasu w których procesy
> mają procesor? Przy robieniu pewnych obliczeń proces będzie przerwany (a
> przez co wyleci z cache) mniej razy.

Kwant czasu w Linuxie to w tej chwili 1/100s (na x86, na axp 1/1024,
na arm 1/32), czyli bardzo dużo :-) (w 2.5 chyba jest 1/1024 ale nie wiem).
Tak czy inaczej, wejście w kod schedulera w kernelu nie oznacza, że
wszystko wyleci z cache, tylko mały kawałek, który ów scheduler zajmie.

-- 
: Michal Moskal :: http://www.kernel.pl/~malekith : GCS {C,UL}++++$ a? !tv
: PLD Linux ::::::::: Wroclaw University, CS Dept : {E-,w}-- {b++,e}>+++ h



Więcej informacji o liście dyskusyjnej pld-devel-pl