* Re: Approaching pws-15
@ 1999-04-14 5:53 Sven Wischnowsky
1999-04-14 8:06 ` Peter Stephenson
0 siblings, 1 reply; 3+ messages in thread
From: Sven Wischnowsky @ 1999-04-14 5:53 UTC (permalink / raw)
To: zsh-workers
Bart Schaefer wrote:
> On Apr 13, 1:45pm, Peter Stephenson wrote:
> > pws-15 should appear real soon now. I haven't included the optimisation of
> > ${..#..} and ${..%..} yet, do people think this is slow enough to need the
> > special cases?
>
> I confess that I'm skeptical of the value of the optimization. Sven, you
> said you did profiling -- care to share a few before/after numbers? Just
> how slow was it in the first place, and how much does this improve it?
As I said in 6009, I wasn't too sure about it anymore, too (and didn't
like the special casing). Especially since (as I forgot to say) this
was done with a interim version of `_path_files' which did a lot more
`${...#...}'.
But maybe we should at least keep the `getmatcharr()' function to
avoid parsing the pattern `$#array' times. Should we?
Anyway, without the patch I got something like:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
41.21 1.57 1.57 102250 0.02 0.02 zhalloc
18.37 2.27 0.70 96755 0.01 0.01 zfree
9.97 2.65 0.38 102441 0.00 0.00 malloc
1.84 2.72 0.07 83548 0.00 0.00 matchonce
1.57 2.78 0.06 120527 0.00 0.00 charmatch
1.05 2.82 0.04 66371 0.00 0.02 hcalloc
1.05 2.86 0.04 63354 0.00 0.02 doesmatch
1.05 2.90 0.04 3712 0.01 0.05 parsecompsw
1.05 2.94 0.04 849 0.05 1.87 paramsubst
...
849 stringsubst <cycle 4> [128]
[6] 41.6 0.04 1.55 849 paramsubst <cycle 4> [6]
0.00 1.49 2358/2358 getmatch [8]
...
0.17 0.00 11345/102250 dupstrpfx [43]
0.22 0.00 14414/102250 dupstring [38]
1.02 0.00 66371/102250 hcalloc [12]
[7] 41.3 1.57 0.00 102250 zhalloc [7]
0.00 0.00 248/96755 zfree [14]
0.00 0.00 249/49979 zalloc [41]
0.00 0.00 248/102441 malloc [29]
...
0.00 1.49 2358/2358 paramsubst <cycle 4> [6]
[8] 39.2 0.00 1.49 2358 getmatch [8]
0.00 0.60 2358/2441 parsereg [16]
0.02 0.51 2196/2196 dolongestmatch [20]
0.00 0.32 1382/5432 domatch [9]
0.01 0.04 2358/2358 get_match_ret [73]
...
0.00 0.51 2196/5432 dolongestmatch [20]
[9] 32.9 0.00 1.25 5432 domatch [9]
0.11 1.14 5432/5432 doesmatch <cycle 2> [11]
...
[10] 32.9 0.11 1.14 5432+141566 <cycle 2 as a whole> [10]
0.04 1.10 63354+22642 doesmatch <cycle 2> [11]
0.07 0.04 83548 matchonce <cycle 2> [49]
...
0.00 0.06 3720/66371 allocnode [61]
0.01 0.17 10780/66371 insertlinknode [31]
0.01 0.22 14471/66371 dupstruct2 <cycle 6> [35]
0.01 0.23 14773/66371 newlinklist [37]
0.01 0.31 19826/66371 compalloc [32]
[12] 27.9 0.04 1.02 66371 hcalloc [12]
1.02 0.00 66371/102250 zhalloc [7]
With the patch this was reduced to:
% cumulative self self total
time seconds seconds calls ms/call ms/call name
44.23 0.92 0.92 68471 0.01 0.01 zhalloc
10.10 1.13 0.21 28530 0.01 0.01 malloc
9.13 1.32 0.19 22918 0.01 0.01 zfree
4.33 1.41 0.09 72353 0.00 0.00 matchonce
2.88 1.47 0.06 2860 0.02 0.11 dupstruct2
2.40 1.52 0.05 42661 0.00 0.00 hwaddc
0.96 1.54 0.02 62448 0.00 0.00 doesmatch
...
0.03 0.00 2442/68471 get_match_ret [60]
0.03 0.00 2501/68471 gettokstr <cycle 4> [49]
0.14 0.00 10414/68471 dupstring [32]
0.63 0.00 47209/68471 hcalloc [7]
[6] 44.4 0.92 0.00 68471 zhalloc [6]
0.00 0.00 172/22918 zfree [25]
0.00 0.00 173/14236 zalloc [37]
0.00 0.00 172/28530 malloc [22]
...
0.00 0.05 3720/47209 allocnode [46]
0.00 0.15 10876/47209 insertlinknode [29]
0.00 0.20 14471/47209 dupstruct2 <cycle 6> [11]
0.00 0.20 14773/47209 newlinklist [23]
[7] 31.1 0.01 0.64 47209 hcalloc [7]
0.63 0.00 47209/68471 zhalloc [6]
...
849 stringsubst <cycle 4> [124]
[21] 10.9 0.01 0.22 849 paramsubst <cycle 4> [21]
0.00 0.15 60/60 getmatcharr [31]
...
0.00 0.15 60/60 paramsubst <cycle 4> [21]
[31] 7.2 0.00 0.15 60 getmatcharr [31]
0.00 0.13 1168/1168 igetmatch [34]
0.00 0.02 60/60 quickgetmatcharr [77]
...
0.00 0.13 1168/1168 getmatcharr [31]
[34] 6.1 0.00 0.13 1168 igetmatch [34]
0.00 0.11 1168/3076 domatch [14]
0.00 0.02 1168/2442 get_match_ret [60]
...
0.00 0.02 60/60 getmatcharr [31]
[77] 1.1 0.00 0.02 60 quickgetmatcharr [77]
0.00 0.02 1266/1286 iquickgetmatch [78]
0.00 0.00 40/68471 zhalloc [6]
0.00 0.00 60/80 quickpat [268]
0.00 0.00 40/1436 arrlen [410]
Bye
Sven
--
Sven Wischnowsky wischnow@informatik.hu-berlin.de
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Approaching pws-15
1999-04-14 5:53 Approaching pws-15 Sven Wischnowsky
@ 1999-04-14 8:06 ` Peter Stephenson
0 siblings, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 1999-04-14 8:06 UTC (permalink / raw)
To: zsh-workers
Sven Wischnowsky wrote:
> But maybe we should at least keep the `getmatcharr()' function to
> avoid parsing the pattern `$#array' times. Should we?
This sounds reasonable. I could extract it from the patch.
--
Peter Stephenson <pws@ibmth.df.unipi.it> Tel: +39 050 844536
WWW: http://www.ifh.de/~pws/
Dipartimento di Fisica, Via Buonarroti 2, 56127 Pisa, Italy
^ permalink raw reply [flat|nested] 3+ messages in thread
* Approaching pws-15
1999-04-13 11:45 PATCH: compinit and _zftp Peter Stephenson
@ 1999-04-13 16:49 ` Bart Schaefer
0 siblings, 0 replies; 3+ messages in thread
From: Bart Schaefer @ 1999-04-13 16:49 UTC (permalink / raw)
To: Peter Stephenson; +Cc: zsh-workers
On Apr 13, 1:45pm, Peter Stephenson wrote:
> pws-15 should appear real soon now. I haven't included the optimisation of
> ${..#..} and ${..%..} yet, do people think this is slow enough to need the
> special cases?
I confess that I'm skeptical of the value of the optimization. Sven, you
said you did profiling -- care to share a few before/after numbers? Just
how slow was it in the first place, and how much does this improve it?
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~1999-04-14 8:30 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1999-04-14 5:53 Approaching pws-15 Sven Wischnowsky
1999-04-14 8:06 ` Peter Stephenson
-- strict thread matches above, loose matches on Subject: below --
1999-04-13 11:45 PATCH: compinit and _zftp Peter Stephenson
1999-04-13 16:49 ` Approaching pws-15 Bart Schaefer
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).