[DRE-maint] [Bug 670743] Re: poor i/o performance in thread parallel to Gtk.main (time overhead can be as bad as 2500%)
Daniel Dietrich
670743 at bugs.launchpad.net
Mon Jun 25 19:56:16 UTC 2012
The issue was fixed some time ago in Rubyripper. Further details can be
found in the the bugreport at
https://code.google.com/p/rubyripper/issues/detail?id=348
** Bug watch added: code.google.com/p/rubyripper/issues #348
http://code.google.com/p/rubyripper/issues/detail?id=348
** Changed in: ruby-gnome2 (Ubuntu)
Status: Confirmed => Fix Released
--
You received this bug notification because you are subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/670743
Title:
poor i/o performance in thread parallel to Gtk.main (time overhead can
be as bad as 2500%)
Status in “ruby-gnome2” package in Ubuntu:
Fix Released
Bug description:
Binary package hint: ruby-gnome2
rubyripper [1] is performing poorly in maverik x86-64 (up-to-date).
They have an open issue for this [2].
Apparently there is nothing wrong with rubyripper. So I managed to
reduce it to a small test case. It is based in the very first ruby-
gnome2 example I could find.
The test function reads 3 MB from /dev/zero. This function is called
from a new thread.
This is done 3 times. Before the call to Gtk.main, during it (from a
button callback signal) and after it.
These are the times for each one (in seconds).
0.004285
9.689063
0.021076
Something is wrong.
Test code follows.
[1]
http://code.google.com/p/rubyripper
[2]
http://code.google.com/p/rubyripper/issues/detail?id=348
--
#!/usr/bin/env ruby
require 'gtk2'
def simpleRead
puts "simpleRead begin\n"
index = 0
file = File.open("/dev/zero", 'r')
while (index < 3 * 1024 * 1024)
file.read(16 * 1024)
index += 16 * 1024
end
file.close()
puts "simpleRead end\n"
end
def newThreadSimpleRead
Thread.new do
require "benchmark"
puts Benchmark.measure { simpleRead }
#simpleRead
end
end
button = Gtk::Button.new("Hello World")
button.signal_connect("clicked") {
newThreadSimpleRead
}
window = Gtk::Window.new
window.signal_connect("delete_event") {
puts "delete event occurred"
#true
false
}
window.signal_connect("destroy") {
puts "destroy event occurred"
Gtk.main_quit
}
window.border_width = 10
window.add(button)
window.show_all
newThreadSimpleRead
STDIN.readchar
Gtk.main
newThreadSimpleRead
STDIN.readchar
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/ruby-gnome2/+bug/670743/+subscriptions
More information about the Pkg-ruby-extras-maintainers
mailing list