[#69616] [Ruby trunk - Feature #11258] add 'x' mode character for O_EXCL — cremno@...
Issue #11258 has been updated by cremno phobia.
3 messages
2015/06/16
[#69643] [Ruby trunk - Misc #11276] [RFC] compile.c: convert to use ccan/list — normalperson@...
Issue #11276 has been updated by Eric Wong.
3 messages
2015/06/17
[#69751] [Ruby trunk - Bug #11001] 2.2.1 Segmentation fault in reserve_stack() function. — kubo@...
Issue #11001 has been updated by Takehiro Kubo.
3 messages
2015/06/27
[ruby-core:69513] [Ruby trunk - Feature #11242] [PATCH] socket: alloa explicit buffer for recv and recv_nonblock
From:
nobu@...
Date:
2015-06-10 01:12:03 UTC
List:
ruby-core #69513
Issue #11242 has been updated by Nobuyoshi Nakada.
Description updated
----------------------------------------
Feature #11242: [PATCH] socket: alloa explicit buffer for recv and recv_nonblock
https://bugs.ruby-lang.org/issues/11242#change-52812
* Author: Eric Wong
* Status: Open
* Priority: Normal
* Assignee: Yukihiro Matsumoto
----------------------------------------
Note, this relies on [Feature #11229]
This reduces GC overhead and makes the API more consistent
with `IO#read` and `IO#read_nonblock`.
Benchmark results:
| user | system | total | real
--------|----------:|----------:|---------:|-----------:
alloc | 0.130000 | 0.280000 | 0.410000 |( 0.420656)
extbuf | 0.100000 | 0.220000 | 0.320000 |( 0.318708)
~~~ruby
require 'socket'
require 'benchmark'
nr = 100000
msg = ' ' * 16384
size = msg.bytesize
buf = ' ' * size
UNIXSocket.pair(:DGRAM) do |a, b|
Benchmark.bmbm do |x|
x.report('alloc') do
nr.times do
b.send(msg, 0)
a.recv(size, 0)
end
end
x.report('extbuf') do
nr.times do
b.send(msg, 0)
a.recv(size, 0, buf)
end
end
end
end
~~~
---Files--------------------------------
0001-socket-allow-explicit-buffer-for-recv-and-recv_nonbl.patch (7.45 KB)
--
https://bugs.ruby-lang.org/