From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 23336 invoked by alias); 20 May 2017 05:07:03 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 41127 Received: (qmail 19494 invoked from network); 20 May 2017 05:07:03 -0000 X-Qmail-Scanner-Diagnostics: from aok120.rev.netart.pl by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(85.128.245.120):SA:0(0.0/5.0):. Processed in 2.283714 secs); 20 May 2017 05:07:03 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: psprint@zdharma.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at zdharma.org does not designate permitted sender hosts) X-Virus-Scanned: by amavisd-new using ClamAV (15) Date: Sat, 20 May 2017 07:06:49 +0200 From: Sebastian Gniazdowski To: zsh-workers@zsh.org Message-ID: In-Reply-To: References: Subject: Re: A patch with hashtable optimization, which doesn't work X-Mailer: Airmail (231) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="591fcee9_3352255a_6b4c" --591fcee9_3352255a_6b4c Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline There are no performance gains from keeping the collision list sorted. Tr= ied many tests and nothing. Tried to optimize mkautofn, to speed up sourcing zcompdump. The idea is s= imple =E2=80=93 make single allocation, not two. However also no performa= nce gains visible: =40=40 -3483,15 +3483,15 =40=40 mkautofn(Shfunc shf) =C2=A0=7B =C2=A0 =C2=A0 =C2=A0Eprog p; - =C2=A0 =C2=A0p =3D (Eprog) zalloc(sizeof(*p)); + =C2=A0 =C2=A0p =3D (Eprog) zalloc(sizeof(*p) + 5 * sizeof(wordcode)); =C2=A0 =C2=A0 =C2=A0p->len =3D 5 * sizeof(wordcode); - =C2=A0 =C2=A0p->prog =3D (Wordcode) zalloc(p->len); + =C2=A0 =C2=A0p->prog =3D (Wordcode) (((char*)p)+sizeof(*p)); =C2=A0 =C2=A0 =C2=A0p->strs =3D NULL; =C2=A0 =C2=A0 =C2=A0p->shf =3D shf; =C2=A0 =C2=A0 =C2=A0p->npats =3D 0; =C2=A0 =C2=A0 =C2=A0p->nref =3D 1; /* allocated from permanent storage */= =C2=A0 =C2=A0 =C2=A0p->pats =3D (Patprog *) p->prog; - =C2=A0 =C2=A0p->flags =3D E=46=5FREAL; + =C2=A0 =C2=A0p->flags =3D E=46=5FREAL=5FSINGLE; /* no allocation for p-= >prog */ Attached is a full patch. Maybe it will inspire someone. I think that if = sourcing time of zcompdump could drop from 55 ms to 35 ms it would be a g= reat success. Tried callgrind on zsh -f sourcing the file, and it said: 22,888,884 =C2=A0=5Fplatform=5Fstrcmp =5B/usr/lib/system/libsystem=5Fplat= form.dylib=5D 18,067,499 =C2=A0ImageLoaderMachOCompressed::trieWalk(unsigned char const= *, unsigned char const*, char const*) =5B/usr/lib/dyld=5D 12,041,235 =C2=A0ecstrcode =5B/usr/local/bin/zsh=5D =C2=A04,877,588 =C2=A0=5Fpthread=5Fmutex=5Funlock=5Fslow =5B/usr/lib/syst= em/libsystem=5Fpthread.dylib=5D =C2=A03,330,755 =C2=A0=5Fpthread=5Fmutex=5Flock=5Fslow =5B/usr/lib/system= /libsystem=5Fpthread.dylib=5D =C2=A02,937,243 =C2=A0ingetc =5B/usr/local/bin/zsh=5D =C2=A01,854,600 =C2=A0stringsubst =5B/usr/local/bin/zsh=5D So there's no allocation there. Tried to find something in ecstrcode but = no luck. Best regards, Sebastian Gniazdowski On 18 maja 2017 at 14:17:27, Sebastian Gniazdowski (psprint=40zdharma.org= ) wrote: > On 18 maja 2017 at 12:15:29, Sebastian Gniazdowski (psprint=40zdharma.o= rg) wrote: > > Hello, > > it is really simple to keep collision lists sorted. However, I get er= ror about typeset =20 > > not being found. Debugged that typeset is inserted into builtintab. I= am pretty exhausted, =20 > > maybe someone will have a revelation on this. Debugged that typeset i= s being searched =20 > > in: > =20 > =46ound it, missing return NULL here below, writing so that no one wast= es time, will now =20 > test performance. -- Sebastian Gniazdowski psprint /at/ zdharma.org --591fcee9_3352255a_6b4c Content-Type: text/plain Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="=?utf-8?Q?prog=5Fopt.diff.txt?=" ZGlmZiAtLWdpdCBhL1NyYy9idWlsdGluLmMgYi9TcmMvYnVpbHRpbi5jCmluZGV4IDA2MzY0NGUu LjY4MGIxOWEgMTAwNjQ0Ci0tLSBhL1NyYy9idWlsdGluLmMKKysrIGIvU3JjL2J1aWx0aW4uYwpA QCAtMzQ4MywxNSArMzQ4MywxNSBAQCBta2F1dG9mbihTaGZ1bmMgc2hmKQogewogICAgIEVwcm9n IHA7CiAKLSAgICBwID0gKEVwcm9nKSB6YWxsb2Moc2l6ZW9mKCpwKSk7CisgICAgcCA9IChFcHJv ZykgemFsbG9jKHNpemVvZigqcCkgKyA1ICogc2l6ZW9mKHdvcmRjb2RlKSk7CiAgICAgcC0+bGVu ID0gNSAqIHNpemVvZih3b3JkY29kZSk7Ci0gICAgcC0+cHJvZyA9IChXb3JkY29kZSkgemFsbG9j KHAtPmxlbik7CisgICAgcC0+cHJvZyA9IChXb3JkY29kZSkgKCgoY2hhciopcCkrc2l6ZW9mKCpw KSk7CiAgICAgcC0+c3RycyA9IE5VTEw7CiAgICAgcC0+c2hmID0gc2hmOwogICAgIHAtPm5wYXRz ID0gMDsKICAgICBwLT5ucmVmID0gMTsgLyogYWxsb2NhdGVkIGZyb20gcGVybWFuZW50IHN0b3Jh Z2UgKi8KICAgICBwLT5wYXRzID0gKFBhdHByb2cgKikgcC0+cHJvZzsKLSAgICBwLT5mbGFncyA9 IEVGX1JFQUw7CisgICAgcC0+ZmxhZ3MgPSBFRl9SRUFMX1NJTkdMRTsgLyogbm8gYWxsb2NhdGlv biBmb3IgcC0+cHJvZyAqLwogICAgIHAtPmR1bXAgPSBOVUxMOwogCiAgICAgcC0+cHJvZ1swXSA9 IFdDQl9MSVNUKChaX1NZTkMgfCBaX0VORCksIDApOwpkaWZmIC0tZ2l0IGEvU3JjL2V4ZWMuYyBi L1NyYy9leGVjLmMKaW5kZXggZGViYjBhZS4uMDg4MDgwYiAxMDA2NDQKLS0tIGEvU3JjL2V4ZWMu YworKysgYi9TcmMvZXhlYy5jCkBAIC00OTczLDcgKzQ5NzMsMTMgQEAgZXhlY2Z1bmNkZWYoRXN0 YXRlIHN0YXRlLCBFcHJvZyByZWRpcl9wcm9nKQogCSAgICBwcm9nID0gKEVwcm9nKSB6aGFsbG9j KHNpemVvZigqcHJvZykpOwogCSAgICBwcm9nLT5ucmVmID0gLTE7IC8qIG9uIHRoZSBoZWFwICov CiAJfSBlbHNlIHsKLQkgICAgcHJvZyA9IChFcHJvZykgemFsbG9jKHNpemVvZigqcHJvZykpOwor ICAgICAgICAgICAgaWYgKHN0YXRlLT5wcm9nLT5kdW1wIHx8ICFuYW1lcykgeworICAgICAgICAg ICAgICAgIHByb2cgPSAoRXByb2cpIHphbGxvYyhzaXplb2YoKnByb2cpKTsKKyAgICAgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLyogVGhlIEVGX1JFQUwgcGF0aCBiZWxvdyAqLwor ICAgICAgICAgICAgICAgIHByb2cgPSAoRXByb2cpIHphbGxvYyhzaXplb2YoKnByb2cpICsgbGVu KTsKKyAgICAgICAgICAgICAgICBwcm9nLT5wYXRzID0gcHAgPSAoUGF0cHJvZyAqKSAoKChjaGFy Kilwcm9nKStzaXplb2YoKnByb2cpKTsKKyAgICAgICAgICAgIH0KIAkgICAgcHJvZy0+bnJlZiA9 IDE7IC8qIGFsbG9jYXRlZCBmcm9tIHBlcm1hbmVudCBzdG9yYWdlICovCiAJfQogCXByb2ctPm5w YXRzID0gbnBhdHM7CkBAIC00OTkyLDggKzQ5OTgsMTEgQEAgZXhlY2Z1bmNkZWYoRXN0YXRlIHN0 YXRlLCBFcHJvZyByZWRpcl9wcm9nKQogCSAgICBwcm9nLT5wcm9nID0gc3RhdGUtPnBjOwogCSAg ICBwcm9nLT5zdHJzID0gc3RhdGUtPnN0cnMgKyBzYmVnOwogCX0gZWxzZSB7Ci0JICAgIHByb2ct PmZsYWdzID0gRUZfUkVBTDsKLQkgICAgcHJvZy0+cGF0cyA9IHBwID0gKFBhdHByb2cgKikgemFs bG9jKGxlbik7CisgICAgICAgICAgICAvKiBUaGUgRUZfUkVBTCBwYXRoICovCisJICAgIHByb2ct PmZsYWdzID0gRUZfUkVBTF9TSU5HTEU7CisJICAgIC8vIHByb2ctPnBhdHMgPSBwcCA9IChQYXRw cm9nICopIHphbGxvYyhsZW4pOworICAgICAgICAgICAgLy8gLS0+CisgICAgICAgICAgICAvLyBw cm9nLT5wYXRzID0gcHAgPSAoKChjaGFyKilwcm9nKStzaXplb2YoKnByb2cpKTsKIAkgICAgcHJv Zy0+cHJvZyA9IChXb3JkY29kZSkgKHByb2ctPnBhdHMgKyBucGF0cyk7CiAJICAgIHByb2ctPnN0 cnMgPSAoY2hhciAqKSAocHJvZy0+cHJvZyArIG5wcmcpOwogCSAgICBwcm9nLT5kdW1wID0gTlVM TDsKZGlmZiAtLWdpdCBhL1NyYy9wYXJzZS5jIGIvU3JjL3BhcnNlLmMKaW5kZXggODc2OWJhYS4u MWUxYzUyOCAxMDA2NDQKLS0tIGEvU3JjL3BhcnNlLmMKKysrIGIvU3JjL3BhcnNlLmMKQEAgLTUw NCwxOCArNTA0LDI4IEBAIGJsZF9lcHJvZyhpbnQgaGVhcCkKIAogICAgIGVjYWRkKFdDQl9FTkQo KSk7CiAKLSAgICByZXQgPSBoZWFwID8gKEVwcm9nKSB6aGFsbG9jKHNpemVvZigqcmV0KSkgOiAo RXByb2cpIHphbGxvYyhzaXplb2YoKnJldCkpOwotICAgIHJldC0+bGVuID0gKChlY25wYXRzICog c2l6ZW9mKFBhdHByb2cpKSArCi0JCShlY3VzZWQgKiBzaXplb2Yod29yZGNvZGUpKSArCi0JCWVj c29mZnMpOwotICAgIHJldC0+bnBhdHMgPSBlY25wYXRzOwotICAgIHJldC0+bnJlZiA9IGhlYXAg PyAtMSA6IDE7Ci0gICAgcmV0LT5wYXRzID0gaGVhcCA/IChQYXRwcm9nICopIHpoYWxsb2MocmV0 LT5sZW4pIDoKLQkoUGF0cHJvZyAqKSB6c2hjYWxsb2MocmV0LT5sZW4pOworICAgIGlmICggaGVh cCApIHsKKyAgICAgICAgcmV0ID0gKEVwcm9nKSB6aGFsbG9jKHNpemVvZigqcmV0KSk7CisgICAg ICAgIHJldC0+bGVuID0gKChlY25wYXRzICogc2l6ZW9mKFBhdHByb2cpKSArCisgICAgICAgICAg ICAgICAgKGVjdXNlZCAqIHNpemVvZih3b3JkY29kZSkpICsKKyAgICAgICAgICAgICAgICBlY3Nv ZmZzKTsKKyAgICAgICAgcmV0LT5ucGF0cyA9IGVjbnBhdHM7CisgICAgICAgIHJldC0+bnJlZiA9 IC0xOworICAgICAgICByZXQtPnBhdHMgPSAoUGF0cHJvZyAqKSB6aGFsbG9jKHJldC0+bGVuKTsK KyAgICB9IGVsc2UgeworICAgICAgICBpbnQgbGVuID0gKChlY25wYXRzICogc2l6ZW9mKFBhdHBy b2cpKSArCisgICAgICAgICAgICAgICAgKGVjdXNlZCAqIHNpemVvZih3b3JkY29kZSkpICsKKyAg ICAgICAgICAgICAgICBlY3NvZmZzKTsKKyAgICAgICAgcmV0ID0gKEVwcm9nKSB6YWxsb2Moc2l6 ZW9mKCpyZXQpICsgbGVuKTsKKyAgICAgICAgcmV0LT5sZW4gPSBsZW47CisgICAgICAgIHJldC0+ bnBhdHMgPSBlY25wYXRzOworICAgICAgICByZXQtPm5yZWYgPSAxOworICAgICAgICByZXQtPnBh dHMgPSAoUGF0cHJvZyAqKSAoKChjaGFyKilyZXQpK3NpemVvZigqcmV0KSk7CisgICAgfQogICAg IHJldC0+cHJvZyA9IChXb3JkY29kZSkgKHJldC0+cGF0cyArIGVjbnBhdHMpOwogICAgIHJldC0+ c3RycyA9IChjaGFyICopIChyZXQtPnByb2cgKyBlY3VzZWQpOwogICAgIHJldC0+c2hmID0gTlVM TDsKLSAgICByZXQtPmZsYWdzID0gaGVhcCA/IEVGX0hFQVAgOiBFRl9SRUFMOworICAgIHJldC0+ ZmxhZ3MgPSBoZWFwID8gRUZfSEVBUCA6IEVGX1JFQUxfU0lOR0xFOwogICAgIHJldC0+ZHVtcCA9 IE5VTEw7CiAgICAgZm9yIChsID0gMDsgbCA8IGVjbnBhdHM7IGwrKykKIAlyZXQtPnBhdHNbbF0g PSBkdW1teV9wYXRwcm9nMTsKQEAgLTI3MDksOSArMjcxOSwxNCBAQCBmcmVlZXByb2coRXByb2cg cCkKIAkgICAgaWYgKHAtPmR1bXApIHsKIAkJZGVjcmR1bXBjb3VudChwLT5kdW1wKTsKIAkJemZy ZWUocC0+cGF0cywgcC0+bnBhdHMgKiBzaXplb2YoUGF0cHJvZykpOwotCSAgICB9IGVsc2UKLQkJ emZyZWUocC0+cGF0cywgcC0+bGVuKTsKLQkgICAgemZyZWUocCwgc2l6ZW9mKCpwKSk7CisJICAg IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgaWYgKCAocC0+ZmxhZ3MgJiBFRl9SRUFMX1NJTkdM RSkgPT0gMCApCisgICAgICAgICAgICAgICAgICAgIHpmcmVlKHAtPnBhdHMsIHAtPmxlbik7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIChwLT5mbGFncyAmIEVGX1JFQUxfU0lOR0xF KSApCisgICAgICAgICAgICAgICAgemZyZWUocCwgc2l6ZW9mKCpwKSArIHAtPmxlbik7CisgICAg ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgemZyZWUocCwgc2l6ZW9mKCpwKSk7CiAJfQog ICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NyYy96c2guaCBiL1NyYy96c2guaAppbmRleCAyMmY3M2Y4 Li5hYjcwY2I3IDEwMDY0NAotLS0gYS9TcmMvenNoLmgKKysrIGIvU3JjL3pzaC5oCkBAIC03OTcs NiArNzk3LDcgQEAgc3RydWN0IGVwcm9nIHsKICNkZWZpbmUgRUZfSEVBUCAyCiAjZGVmaW5lIEVG X01BUCAgNAogI2RlZmluZSBFRl9SVU4gIDgKKyNkZWZpbmUgRUZfUkVBTF9TSU5HTEUgMTYKIAog dHlwZWRlZiBzdHJ1Y3QgZXN0YXRlICpFc3RhdGU7CiAK --591fcee9_3352255a_6b4c--