Details
-
Type:
Bug
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: JRuby 1.1.3
-
Fix Version/s: None
-
Component/s: Performance
-
Labels:None
Description
Some of this is due to Java libs just having more "open" overhead than e.g. open(2), but some of it is also excessive logic in our "open" call chain. It's pretty bad perf either way. Based on bench_io_open.rb in test/bench:
JRuby:
user system total real
File.open(file, "r+") 0.617000 0.000000 0.617000 ( 0.617008)
File.open(file, "r+") 0.608000 0.000000 0.608000 ( 0.608075)
File.open(file, "r+") 0.608000 0.000000 0.608000 ( 0.607263)
File.open(file, "r+") 0.605000 0.000000 0.605000 ( 0.604758)
File.open(file, "r+") 0.601000 0.000000 0.601000 ( 0.600772)
File.open(file, "r+") 0.621000 0.000000 0.621000 ( 0.621210)
File.open(file, "r+") 0.601000 0.000000 0.601000 ( 0.600824)
File.open(file, "r+") 0.602000 0.000000 0.602000 ( 0.601984)
File.open(file, "r+") 0.602000 0.000000 0.602000 ( 0.602048)
File.open(file, "r+") 0.615000 0.000000 0.615000 ( 0.615581)
Ruby:
user system total real
File.open(file, "r+") 0.080000 0.100000 0.180000 ( 0.177464)
File.open(file, "r+") 0.070000 0.090000 0.160000 ( 0.176072)
File.open(file, "r+") 0.070000 0.100000 0.170000 ( 0.179987)
File.open(file, "r+") 0.080000 0.100000 0.180000 ( 0.173712)
File.open(file, "r+") 0.070000 0.100000 0.170000 ( 0.171952)
File.open(file, "r+") 0.070000 0.100000 0.170000 ( 0.173249)
File.open(file, "r+") 0.080000 0.090000 0.170000 ( 0.180945)
File.open(file, "r+") 0.070000 0.100000 0.170000 ( 0.174079)
File.open(file, "r+") 0.070000 0.100000 0.170000 ( 0.178888)
File.open(file, "r+") 0.080000 0.100000 0.180000 ( 0.181685)
Still valid; slightly improved since it was filed, though.