Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: The speed of zsh
- X-seq: zsh-workers 2066
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxxxxxxxxx>
- To: Zoltan Hidvegi <hzoli@xxxxxxxxxx>, zsh-workers@xxxxxxxxxxxxxxx (Zsh hacking and development)
- Subject: Re: The speed of zsh
- Date: Sat, 24 Aug 1996 14:15:41 -0700
- In-reply-to: Zoltan Hidvegi <hzoli@xxxxxxxxxx> "The speed of zsh" (Aug 24, 9:59pm)
- References: <199608241959.VAA01891@xxxxxxxxxxxxxxxxxxxx>
- Reply-to: schaefer@xxxxxxx
On Aug 24, 9:59pm, Zoltan Hidvegi wrote:
} Subject: The speed of zsh
}
} Somehow ksh spawns external commands twice as fast as zsh.
I suspect it has something to do with zsh's use of pipes for synchronizing
parent and child processes; the zsh parent doesn't do anything until the
child finishes its entersubsh() and closes the pipe. Ksh probably doesn't
create the pipe in the first place.
It also occurs to me that with child_block()/child_unblock() in use, zsh
probably doesn't *need* the pipe-based synchronization any longer. Take
it out and see what happens.
} The patch below improves zsh preformance by 10-15%. An other 10% speed
} improvement would be possible by avoiding the
} child_block()/child_unblock() calls whenever possible (other shells do not
} use any system calls while executing builtin-only scritpts).
I think I said before that we could avoid those if we aren't going to fork
and if the job table is empty. Maybe they're expensive enough to be worth
the extra test. On what do you base the 10% figure?
(I'm reasonably sure that with no forks and nothing in the job table, zsh
needs neither the signal blocks nor the pipe sync.)
} % cumulative self self total
} time seconds seconds calls ms/call ms/call name
} 4.60 159.35 15.87 899991 0.02 0.04 paramsubst
} 3.96 173.02 13.67 20300232 0.00 0.00 halloc
} 1.58 227.07 5.46 15000174 0.00 0.00 hcalloc
Wow. That's an awful lot of allocations (no wonder the heap makes so much
difference to zsh's speed), and paramsubst() is pretty expensive per call.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.nbn.com/people/lantern
New male in /home/schaefer:
>N 2 Justin William Schaefer Sat May 11 03:43 53/4040 "Happy Birthday"
Messages sorted by:
Reverse Date,
Date,
Thread,
Author