Article View: pl.comp.lang.tcl
Article #534Re: Słaba wydajność TCLa ?
From: Wojciech Kocjan
Date: Sun, 07 Oct 2007 18:29
Date: Sun, 07 Oct 2007 18:29
46 lines
2896 bytes
2896 bytes
Dnia 07-10-2007 o 20:10:18 Artur <mail@xdobry.de> napisał(a):
> On 6 Okt., 22:23, TCLfri...@googlemail.com wrote:
>> Miałem ostatnio potrzebę przekodować prostą operacją XOR dość duży
>> plik (kilkaset MB). Przy okazji porównałem wydajność analogicznego
>> kodu napisanego w Tclu, perlu i javie i niestety musze stwierdzić, że
>> wydajność Tcl'a pozostawiła tu wiele do życzenia :-( Oczywiście test
>> ten nie może być uznany za obiektywny, jednak dotyczył realnego
>> zagadnienia przez co jego wynik uważam za szczególnie istotny. Nie
>> chcę zaśmiecać grupy, szczegóły tego 'testu' opisałem
>> tutaj:http://tclmentorpl.kocjan.org/2007/10/krtka-rozprawa-midzy-panem-wjte...
>> , natomiast chciałbym się spytać innych użytkowników Tcla, jak wy
>> znajdujecie wydajność tego języka w odniesieniu do innych?
> Tak. To jest dobry przykład do czego nie powinno się używać Tcl
> bezpośrednio.
> Tcl został wymyślony jako tzw. jezyk klej. Klej dla kodu napisanego w
> C.
Tu akurat się zgadzam.
> [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:
manipulatedata byte data $datastr byte key $keystr {$data ^ $key} <-
ostatnie to formuła matematyczna.
O ile takie coś pewnie nie znajdzie się w samym Tcl, to pewnie mogłoby
znaleźć się w Tcllib wraz z wersją critcl (jak np md5 w tcllib).
--
Wojciech Kocjan
Technical Details
Message-ID:
<op.tzuayvvi4mdq54@wkocjan.ibm.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<1191702228.578214.230640@22g2000hsm.googlegroups.com> <1191780618.467217.65970@o80g2000hse.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Wojciech Kocjan" <wojciechka@gazeta.pl> Newsgroups: pl.comp.lang.tcl Subject: Re: Słaba wydajność TCLa ? Date: Sun, 07 Oct 2007 20:29:09 +0200 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 46 Message-ID: <op.tzuayvvi4mdq54@wkocjan.ibm.com> References: <1191702228.578214.230640@22g2000hsm.googlegroups.com> <1191780618.467217.65970@o80g2000hse.googlegroups.com> NNTP-Posting-Host: ablw58.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1191781749 23861 83.7.216.58 (7 Oct 2007 18:29:09 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Sun, 7 Oct 2007 18:29:09 +0000 (UTC) X-User: wojciechka User-Agent: Opera Mail/9.23 (Win32) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit