Forum: Ruby-core IO operation is 10x slower in multi-thread environment

18813f71506ebad74179bf8c5a136696?d=identicon&s=25 unknown (Guest)
on 2014-08-18 01:11
(Received via mailing list)
Issue #10009 has been updated by Eric Wong.


 Some tests adapted from glibc:

   git clone git://80x24.org/rb_futex_test

 tst-cond18-f/p are micro benchmarks, -f (futex version) is roughly
 twice a fast as the -p (pthreads version); but that doesn't seem
 to translate to noticeable real-world speed improvements in Ruby.

----------------------------------------
Bug #10009: IO operation is 10x slower in multi-thread environment
https://bugs.ruby-lang.org/issues/10009#change-48390

* Author: Alexandre Riveira
* Status: Open
* Priority: Urgent
* Assignee:
* Category:
* Target version:
* ruby -v: ruby 2.1 x ruby 1.9.2 with taskset
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN
----------------------------------------
I created this issue #9832 but not have io operation.
In the script attached I simulate IO operation in multi-thread
environment.
For ruby 1.9.2 apply `taskset -c -p 2 #{Process.pid}` for regulates
threads behavior.
The second Thread is a io operation

My results:

1) ruby 2.1.2
first 43500194
second 95
third 42184385

2) ruby-2.0.0-p451
first 38418401
second 95
third 37444470

3) 1.9.3-p545
first 121260313
second 50
third 44275164

4) 1.9.2-p320
first 31189901
second 897 <============
third 31190598

Regards


Alexandre Riveira


---Files--------------------------------
teste_thread_schedule_2.rb (1.05 KB)
teste_thread_schedule.py (953 Bytes)
teste_thread_schedule.rb (955 Bytes)
test_thread_sched_pipe.rb (1.01 KB)
test_thread_sched.rb (2.82 KB)
test_thread_sched.rb (2.88 KB)
tests.txt (2.5 KB)
This topic is locked and can not be replied to.