View Compiled method handle
1 2 3 4 5 6 7 8 9 10
Decoding compiled method 0x0000000103481a50:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
# {method} {0x000000011a78ba00} 'invokeStatic_L6_L' '(Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;' in 'java/lang/invoke/LambdaForm$DMH'
# parm0: rsi:rsi = 'java/lang/Object'
# parm1: rdx:rdx = 'java/lang/Object'
# parm2: rcx:rcx = 'java/lang/Object'
# parm3: r8:r8 = 'java/lang/Object'
View gist:fd328074ac0e20a0a62f
1 2 3 4 5 6 7 8 9 10
percent live alloc'ed stack class
rank self accum bytes objs bytes objs trace name
1 13.76% 13.76% 30192480 377406 66869520 835869 436418 org.jruby.runtime.builtin.IRubyObject[]
2 8.29% 22.05% 18183744 378828 40121760 835870 436417 org.jruby.RubyArray
3 4.74% 26.79% 10402048 1 10402048 1 436358 byte[]
4 4.74% 31.53% 10402048 1 10402048 1 434525 byte[]
5 3.00% 34.53% 6584024 103390 6584024 103390 436490 byte[]
6 2.62% 37.15% 5747712 119744 15175824 316163 436391 org.jruby.RubyArray
7 1.89% 39.04% 4135600 103390 4135600 103390 436491 org.jruby.RubyString
8 1.89% 40.93% 4135600 103390 4135600 103390 436489 org.jruby.util.ByteList
View gist:2aec24578482427e88d9
1 2 3 4 5 6 7 8 9 10
diff --git a/core/src/main/java/org/jruby/javasupport/JavaClass.java b/core/src/main/java/org/jruby/javasupport/JavaClass.java
index 2d25d29..ab917e8 100644
--- a/core/src/main/java/org/jruby/javasupport/JavaClass.java
+++ b/core/src/main/java/org/jruby/javasupport/JavaClass.java
@@ -518,7 +518,7 @@ public class JavaClass extends JavaObject {
private RubyModule unfinishedProxyModule;
private RubyClass unfinishedProxyClass;
- private final ReentrantLock proxyLock = new ReentrantLock();
+ private final ReentrantLock proxyLock;
View gist:a78c68145e2f8c739b1e
1 2 3 4 5 6 7 8 9 10
// MRI: search_required
protected char searchRequired(String fname, String[] path) {
String tmp;
int extOffset;
String ext, ftptr;
char type, ft = 0;
String[] loadingP;
 
path[0] = null;
extOffset = (ftptr = fname).lastIndexOf('.');
View blurgh
1 2 3 4 5 6 7 8 9 10
# ignores kwargs
 
if (rest)
postIndex = args.length - postCount;
elsif (preCount + optLength <= args.length)
postIndex = preCount + optLength
else
optCount = args.length - preCount - postCount
postIndex = preCount + optCount
end
View gist:30cb2250ab8510b5f907
1 2 3 4 5 6 7 8 9 10
Enumerator#feed, #next_values, #prev_values missing
Hash#any? and Array#any? optimization missing
ObjectSpace::WeakMap#each and Enumerable inclusion
ObjectSpace::count_objects unimplemented
Process::daemon unimplemented
Process::exec missing (is this just Kernel#exec?)
Process::getsid unimplemented
Process::setproctitle
RubyVM namespace
Thread#handle_interrupt is not yet fully functional
View gist:5be78335c9dd9121fe15
1 2 3 4 5 6 7 8 9 10
commit 7fcd16e2e39fc6319c67f83a96f999eef916384e
Author: Charles Oliver Nutter <headius@headius.com>
Date: Fri Jan 9 14:10:14 2015 -0600
 
Switch closure loads to operands.
LoadImplicitClosure = PassedBlock, for the directly-passed block.
LoadFrameCLosure = ImplicitBlock for the implicitly-passed block.
View 1.txt
1 2 3 4 5 6 7 8 9
~/projects/jruby $ jruby -X-C bench_yield.rb
Calculating -------------------------------------
yield 48.297k i/100ms
block.call 56.451k i/100ms
method dispatch 79.492k i/100ms
-------------------------------------------------
yield 1.471M (±10.8%) i/s - 7.245M
block.call 1.537M (± 7.0%) i/s - 7.621M
method dispatch 2.587M (± 7.7%) i/s - 12.878M
View fib.java
1 2 3 4 5 6 7 8 9 10
@JRubyMethod(name = "fib_ruby", frame = true, required = 1, optional = 0, rest = false)
public static IRubyObject method__0$RUBY$fib_ruby(
final bench_fib_recursive bench_fib_recursive,
final ThreadContext threadContext,
final IRubyObject rubyObject,
final IRubyObject rubyObject2,
final Block block) {
if (bench_fib_recursive.getCallSite1().call(threadContext, rubyObject, rubyObject2, 2L).isTrue()) {
return rubyObject2
View gist:2b65c9bbdc142d811cfe
1 2 3 4 5 6 7 8 9 10
static VALUE
rb_ary_hash(VALUE ary)
{
long i;
st_index_t h;
VALUE n;
 
h = rb_hash_start(RARRAY_LEN(ary));
h = rb_hash_uint(h, (st_index_t)rb_ary_hash);
for (i=0; i<RARRAY_LEN(ary); i++) {
Something went wrong with that request. Please try again.