Article View: pl.comp.lang.tcl
Article #245Re: Optymalizacja skryptu
From: Derek Kuliński / takeda
Date: Sat, 31 Dec 2005 20:48
Date: Sat, 31 Dec 2005 20:48
54 lines
3348 bytes
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-mailReferences:
<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