zsh-workers
 help / color / mirror / code / Atom feed
* mmap on OS X
@ 2015-10-28  9:49 Sebastian Gniazdowski
  2015-10-28 10:02 ` Sebastian Gniazdowski
  0 siblings, 1 reply; 2+ messages in thread
From: Sebastian Gniazdowski @ 2015-10-28  9:49 UTC (permalink / raw)
  To: Zsh hackers list

Hello,
the patch 1f62d8d (34451) introduced mmap on OS X. This caused a
slowdown which I and Bart identified. Then the patch has been recently
reverted with 8934007 (36956), however before that a few optimizations
have been introduced. It turned out that they smoothed out effect of
34451. Starting from 9f8e3e8 (36834) mmap was no longer slowing things
down. I also checked the update of 36834, which is patch 506d592
(36943), and it's the same.

With the patch reverted the situation is as follows:
- for small data there is no change
- for large data reverted version is slower

So the whole thing is like this:
- OS X mmap is slower for smaller data
- recent optimizations smooth this out
- OS X mmap is faster for large data

So by restoring mmap use we have all cases covered and full performance.


Results for big data (max string size 1350000):
*Running [zsh-withmmap]:                  string_test      57625,00
Running [zsh-withoutmmap]:             string_test      85235,24
Running [zsh-first-mmap]:                 string_test     127042,96
Running [zsh-before-first-mmap]:      string_test      75629,60

Results for small data (max string size 225000):
Running [zsh-withmmap]:                  string_test       1496,85
Running [zsh-withoutmmap]:             string_test       1595,89
**Running [zsh-first-mmap]:                 string_test       3790,70
Running [zsh-before-first-mmap]:      string_test       1496,02

It can be seen that for small data the slowdown of ** is smoothed out
in recent Zsh, while for large data mmap in recent Zsh gives speed up
(*).

Best regards,
Sebastian Gniazdowski


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: mmap on OS X
  2015-10-28  9:49 mmap on OS X Sebastian Gniazdowski
@ 2015-10-28 10:02 ` Sebastian Gniazdowski
  0 siblings, 0 replies; 2+ messages in thread
From: Sebastian Gniazdowski @ 2015-10-28 10:02 UTC (permalink / raw)
  To: Zsh hackers list

PS. The result:

...
Running [zsh-first-mmap]:                 string_test     127042,96
Running [zsh-before-first-mmap]:      string_test      75629,60

Shows that mmap is not necessarily "faster for big data". It is safer
to say that in combination with recent optimizations mmap is
beneficial.

Best regards,
Sebastian Gniazdowski


On 28 October 2015 at 10:49, Sebastian Gniazdowski
<sgniazdowski@gmail.com> wrote:
> Hello,
> the patch 1f62d8d (34451) introduced mmap on OS X. This caused a
> slowdown which I and Bart identified. Then the patch has been recently
> reverted with 8934007 (36956), however before that a few optimizations
> have been introduced. It turned out that they smoothed out effect of
> 34451. Starting from 9f8e3e8 (36834) mmap was no longer slowing things
> down. I also checked the update of 36834, which is patch 506d592
> (36943), and it's the same.
>
> With the patch reverted the situation is as follows:
> - for small data there is no change
> - for large data reverted version is slower
>
> So the whole thing is like this:
> - OS X mmap is slower for smaller data
> - recent optimizations smooth this out
> - OS X mmap is faster for large data
>
> So by restoring mmap use we have all cases covered and full performance.
>
>
> Results for big data (max string size 1350000):
> *Running [zsh-withmmap]:                  string_test      57625,00
> Running [zsh-withoutmmap]:             string_test      85235,24
> Running [zsh-first-mmap]:                 string_test     127042,96
> Running [zsh-before-first-mmap]:      string_test      75629,60
>
> Results for small data (max string size 225000):
> Running [zsh-withmmap]:                  string_test       1496,85
> Running [zsh-withoutmmap]:             string_test       1595,89
> **Running [zsh-first-mmap]:                 string_test       3790,70
> Running [zsh-before-first-mmap]:      string_test       1496,02
>
> It can be seen that for small data the slowdown of ** is smoothed out
> in recent Zsh, while for large data mmap in recent Zsh gives speed up
> (*).
>
> Best regards,
> Sebastian Gniazdowski


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-10-28 10:02 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-10-28  9:49 mmap on OS X Sebastian Gniazdowski
2015-10-28 10:02 ` 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).