[Ecls-list] About sockets - maybe last iteration?
Matthew Mondor
mm_lists at pulsar-zone.net
Wed Feb 17 21:36:30 UTC 2010
On Wed, 17 Feb 2010 20:57:49 +0100
Juan Jose Garcia-Ripoll <juanjose.garciaripoll at googlemail.com> wrote:
> I have removed the stale debug statements. Could you check now? There
> should be no significant performance hits in moving from 9.12.3 --
> quite the contrary, since garbage collection has improved and there
> have been other improvements --. If you are specifically mentioning
> performance of sockets, the use of two-way streams only happens when
> you use :input t and :output t and even then it should amount to a
> minimal overhead: one function call per read/write and an additional
> function call when creating/closing the stream.
Wrong number of arguments passed to function #<compiled-function SB-BSD-SOCKETS::SOCKET-MAKE-STREAM-INNER>.
socket-make-stream indeed calls socket-make-stream-inner with three arguments:
(setf stream (socket-make-stream-inner (socket-file-descriptor socket)
- input output))
+ input output buffering))
Probably should fix it although untested.
About the performance, I agree with you, and am pretty much certain it
dropped due to the extra debugging output, as the returned HTTP
document is so small that more time is spent accepting/closing
connections, and this is the hot path where the extra output existed
(three separate line prints adding three extra syscalls per connection
on a line-buffered stdout (my tree still uses line-buffered stdout on
threads-enabled builds as this never caused problems for me and I
wanted to avoid a syscall per character being issued)).
Thanks again,
--
Matt
More information about the ecl-devel
mailing list