* Performance gains after the commited optimizations
@ 2017-09-24 20:04 Sebastian Gniazdowski
0 siblings, 0 replies; only message in thread
From: Sebastian Gniazdowski @ 2017-09-24 20:04 UTC (permalink / raw)
To: zsh-workers
Hello
I've found out great gains coming from multiple optimizations. I'm writing the Doxygen-like tool in Zsh, which uses (z) flag and much processing in loops.
Processing a 1500-lines file, gains are:
- from 14 seconds to 8 seconds, thanks to patch:
2017-03-04 8522e99 40781: optimize array assignment, similar to 39995 for string assignment
– from 20 seconds to 14 seconds, thanks to patch:
2016-12-28 4fb4ce1 40231: Optimise setarrvalue().
– from 25 seconds to 20 seconds, thanks to patch:
2016-11-14 99acd1e 39906: More multibyte optimisations for US-ASCII.
– from 30 seconds to 25 seconds, thanks to patch:
2016-11-04 9c68ef0 39825: optimise mb_metastrlenend() for 7-bit character.
one other patch that contributed 1 sec, but no time and energy to run bisect
I was searching for real-word confirmation of each optimization and it was hard to find them, only once zsh-syntax-highlighting gained from 99acd1e and 9c68ef0. Thanks for commiting those patches, they've had say "off-by-1" complexity, the possibility to break special cases, so it wasn't easy to read them. I can now parse large file in 8 seconds, while 5.0.8 does it in 38 seconds (in 5.1 probably Bart's heap optimizations matter).
--
Sebastian Gniazdowski
psprint /at/ zdharma.org
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2017-09-24 20:14 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-09-24 20:04 Performance gains after the commited optimizations Sebastian Gniazdowski
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).