[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