🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Słaba wydajność TCLa ?

#535
From: Artur
Date: Mon, 08 Oct 2007 07:11
40 lines
2923 bytes
> > [ciach]
> > static int stringxor(ClientData clientData, Tcl_Interp *interp, int
> > objc, Tcl_Obj *const objv[])
> > {
> >   if (objc!=2) {
> >       Tcl_WrongNumArgs(interp, 1, objv, "proceduro atendas du
> > argumentojn");
> >       return TCL_ERROR;
> >   }
> >   int stringlen,xorlen,t=0
> >   char *string = Tcl_GetStringFromObj(objv[0], &stringlen);
> >   char *xor = Tcl_GetStringFromObj(objv[1], &xorlen);
>
> Zależnie od tego co autor miał na myśli (a raczej miał na myśli dane
> binarne) to pewnie chodziło o Tcl_GetByteArrayFromObj().
>
> Zastanawiam się nad czymś innym - czy nie można tego problemu trochę
> uogólnić i np zaimplementować w oparciu o C i Tcl_ExprObj(). Na przykład:
>
Rzeczywiście to było zbyt szybko (niem. Schnellschuss) i niepoprawnie.
Tak naprawdę nie wolno modyfikować danych objektów w ten sposób
poniewąż Tcl użwywa Copy on Write. Tzn dane mogę być używane przez
wiele objektów (sharing).
Poprawnie by było zwracać wynik jako nowy objekt, ja chiałem
modyfikować parameter przez referencję.
Problemem jest też to, że Tcl używa wewnętrznie UTF-8 (z kilkoma
modyfikacjami) tzn.
Tcl_GetByteArrayFromObj() i Tcl_NewByteArrayObj są jedynie dobrym
rozwiązaniem.

Tak na marginesie. Przez UTF8 Tcl nadaję się bardzo dobrze do
tworzenia rozwiązań wielojęzycznych i do obróbki tekstów ale obróbka
czystych danych binarnych jest trochę trudniejsza, wolniejsza i
mozolna.

Tcl_ExprObj() ciekawę to może było by najbardziej eleganckie
rozwiązanie.

Artur
Technical Details
Message-ID: <1191827502.178402.74160@d55g2000hsg.googlegroups.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!d55g2000hsg.googlegroups.com!not-for-mail
References: <1191702228.578214.230640@22g2000hsm.googlegroups.com> <1191780618.467217.65970@o80g2000hse.googlegroups.com> <op.tzuayvvi4mdq54@wkocjan.ibm.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!newsfeed.pionier.net.pl!news.glorb.com!postnews.google.com!d55g2000hsg.googlegroups.com!not-for-mail
From: Artur <mail@xdobry.de>
Newsgroups: pl.comp.lang.tcl
Subject: Re: Słaba wydajność TCLa ?
Date: Mon, 08 Oct 2007 00:11:42 -0700
Organization: http://groups.google.com
Lines: 48
Message-ID: <1191827502.178402.74160@d55g2000hsg.googlegroups.com>
References: <1191702228.578214.230640@22g2000hsm.googlegroups.com>   <1191780618.467217.65970@o80g2000hse.googlegroups.com>   <op.tzuayvvi4mdq54@wkocjan.ibm.com>
NNTP-Posting-Host: 62.225.37.69
Mime-Version: 1.0
X-Trace: posting.google.com 1191827502 25216 127.0.0.1 (8 Oct 2007 07:11:42 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Mon, 8 Oct 2007 07:11:42 +0000 (UTC)
In-Reply-To: <op.tzuayvvi4mdq54@wkocjan.ibm.com>
User-Agent: G2/1.0
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1,gzip(gfe),gzip(gfe)
X-HTTP-Via: 1.1 G8SLV (NetCache NetApp/6.0.4P1), 1.1 G8SLV (NetCache NetApp/6.0.4P1)
Complaints-To: groups-abuse@google.com
Injection-Info: d55g2000hsg.googlegroups.com; posting-host=62.225.37.69;   posting-account=ps2QrAMAAAA6_jCuRt2JEIpn5Otqf_w0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit