Class: ZenOptimizer

Inherits:
Object
  • Object
show all
Includes:
Singleton
Defined in:
lib/zenoptimize.rb

Constant Summary collapse

@@signature =
:fuck
@@threshold =
500
@@sacred =
{
  Sexp => true,
}
@@skip =
Hash.new(false)
@@data =
Hash.new(0)

Class Method Summary collapse

Class Method Details

.dataObject



46
# File 'lib/zenoptimize.rb', line 46

def self.data; @@data; end

.optimize(signature) ⇒ Object



61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/zenoptimize.rb', line 61

def self.optimize(signature)
  klass, meth = *signature

  unless @@sacred.include? klass then
    STDERR.puts "*** Optimizer threshold tripped!! Optimizing #{klass}.#{meth}"
    
    begin
      klass.module_eval "inline(:Ruby) { |b| b.optimize(#{meth.inspect}) }"
    rescue Exception => e
      STDERR.puts "Failed to optimize #{klass}.#{meth}"
      STDERR.puts "Exception = #{e.class}, message = #{e.message}"
    end
  end

  @@skip[signature] = true
end

.signatureObject



47
# File 'lib/zenoptimize.rb', line 47

def self.signature; @@signature; end

.start_optimizingObject



49
50
51
# File 'lib/zenoptimize.rb', line 49

def self.start_optimizing
  self.instance.add_event_hook
end

.stop_optimizingObject



53
54
55
56
57
58
59
# File 'lib/zenoptimize.rb', line 53

def self.stop_optimizing
  self.instance.remove_event_hook
  if $DEBUG then
    STDERR.puts @@skip.inspect
    STDERR.puts @@data.sort_by{|x,y| y}.reverse[0..4].inspect
  end
end