🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.tcl
Article #245

Re: Optymalizacja skryptu

#245
From: Derek Kuliński / takeda
Date: Sat, 31 Dec 2005 20:48
54 lines
3348 bytes
On Fri, 30 Dec 2005 08:20:11 +0100, Googie wrote:

> Derek Kuliński / takeda wrote:
>> Fakt to z pętlą foreach raczej będzie działało dłużej... Ale jeżeli wykona
>> się w mniej niż sekundę to powinno być ok... Z drugiej strony, poniższa
>> funkcja skoryguje czas (o ile działa poprawnie).
> Hehe, ja tu mówiłem raczej o rzędach wielkości milisekund :)

Milisekundy w sumie też mają wpływ, w sumie dlatego odejmuję 499 przy
poleceniu after, pewnie powinienem chyba zmierzyć czas wykonywania
polecenia timer i odjąć tyle ile mi wyjdzie.

W każdym razie jak nic nie odejmę to timer zawsze spóźnia się o sekundę...

>> Fajnie jak byś się zagłębił, bo ta część też mi się nie podoba =)
> Tzn. co? [adjust_timer]? Co Ci się tam nie podoba?

Wiesz, jak to pisałem to byłem pół przytomny (grypa czy coś mnie chwyciła)
przy tej funkcji bardziej zgadywałem co trzeba zrobić =)

>> Ogólnie chodzi, żeby cały timer (after) mógł być wywołany w dowolnym
>> momencie, ale mimo tego ustawił właściwy czas aby poprawnie odliczał.
> Na prawdę nie mam sił rozgryzać działania całego skryptu :)
> Szybkim rzutem oka zauważyłem jeszcze jedną - na prawdę drobną - 
> optymalizację:
> 
> proc adjust_timer {current increment} {
> 	set res [expr {$current % $increment}]
> 	if {$res == 0} {
> 		set res $increment
> 	}
> 	return $res
> }
> 
> można zapisać tak:
> 
> proc adjust_timer {current increment} {
> 	set res [expr {$current % $increment}]
> 	if {$res == 0} {
> 		return $increment
> 	}
> 	return $res
> }
> 
> i w przypadku $res == 0 oszczędzimy 1 wywołane komendy :) Wiem, to 
> śmieszne żeby się bawić w takie pierdółki... tak tylko piszę.

Czemu nie? Czym krócej wywoływane jest to całe timer, tym chyba mniej
trzeba skorygować czas (jak to napisałem na samym początku)...

-- 
ダレック
takeda@IRCnet.EFnet, ICQ# 15827691, YahooIM: takeda64
http://ircwiki.takeda.tk - strona wiki poświęcona IRC
Technical Details
Message-ID: <1m1jkik4coaei.dlg@takeda.tk.invalid>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!news.ceti.pl!not-for-mail
References: <spguu0moj949$.dlg@takeda.tk.invalid> <dotin8$ub2$1@srv.cyf-kr.edu.pl> <vp3r1q00wjwc.dlg@takeda.tk.invalid> <dp05ti$okb$1@srv.cyf-kr.edu.pl> <qo09kafccq5u$.dlg@takeda.tk.invalid> <dp2mk7$l5q$1@srv.cyf-kr.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!news.cyf-kr.edu.pl!news.ceti.pl!not-for-mail
From: Derek Kuliński / takeda <d.kulinski@gmail.com>
Newsgroups: pl.comp.lang.tcl
Subject: Re: Optymalizacja skryptu
Date: Sat, 31 Dec 2005 12:48:58 -0800
Organization: CETI S.C. (Krakow, Poland)
Lines: 54
Message-ID: <1m1jkik4coaei.dlg@takeda.tk.invalid>
References: <spguu0moj949$.dlg@takeda.tk.invalid> <dotin8$ub2$1@srv.cyf-kr.edu.pl> <vp3r1q00wjwc.dlg@takeda.tk.invalid> <dp05ti$okb$1@srv.cyf-kr.edu.pl> <qo09kafccq5u$.dlg@takeda.tk.invalid> <dp2mk7$l5q$1@srv.cyf-kr.edu.pl>
NNTP-Posting-Host: node-402413e2.sna.onnet.us.uu.net
Mime-Version: 1.0
X-Trace: alfa.ceti.pl 1136062140 26019 64.36.19.226 (31 Dec 2005 20:49:00 GMT)
X-Complaints-To: abuse@tech.ceti.pl
NNTP-Posting-Date: Sat, 31 Dec 2005 20:49:00 +0000 (UTC)
User-Agent: 40tude_Dialog/2.0.15.1
X-Face: ptH}o2-v0T<^mQ%"Un18TXgE#jj}qUfAK;3\x;'$hO%[N&Jr^1FC~dtAe&p%]WWfXhhT_G%@!$|Nw,nq|M07r2[Jf._,ZqGWv@aULt6&Y+`2Wp9y]|=K.GgSR=]7ObD?8S|{I:D=+1K_'tn/:T0pyTQN=x).#~Z="SWp0V)P5D"8]rf=j5|{;O{0]8X;GHjl6p1R\VXngOe
X-Antivirus: avast! (VPS 0552-4, 12/30/2005), Outbound message
X-Antivirus-Status: Clean
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit