diff --git a/bench/perf.rb b/bench/perf.rb index af545cd8..ea668d56 100644 --- a/bench/perf.rb +++ b/bench/perf.rb @@ -31,14 +31,6 @@ end u = User.new(1, "sam", 10, "about") s = UserSerializer.new(u) -u2 = User.new(2, "sam", 20, "about") -s2 = UserSerializer.new(u2) - -p s2.attributes - -p s.attributes - - n = 100000 Benchmark.bmbm {|x| @@ -46,7 +38,6 @@ Benchmark.bmbm {|x| x.report("fast_hash") { n.times { u.fast_hash } } x.report("attributes") { n.times { UserSerializer.new(u).attributes } } x.report("serializable_hash") { n.times { UserSerializer.new(u).serializable_hash } } - x.report("serializable_hash_with_instrumentation") { n.times { UserSerializer.new(u).serializable_hash_with_instrumentation } } } diff --git a/lib/active_model/serializer.rb b/lib/active_model/serializer.rb index 8ce64135..f1fbae2a 100644 --- a/lib/active_model/serializer.rb +++ b/lib/active_model/serializer.rb @@ -284,37 +284,13 @@ module ActiveModel # Returns a hash representation of the serializable # object without the root. - def serializable_hash_without_instrumentation + def serializable_hash return nil if @object.nil? @node = attributes include_associations! if _embed @node end - - def serializable_hash_with_instrumentation - return nil if @object.nil? - instrument(:serialize, :serializer => self.class.name) do - @node = attributes - instrument :associations do - include_associations! if _embed - end - @node - end - end - - # disable all instrumentation on serializable_hash (performance will be better) - def self.disable_instrumentation! - alias_method :serializable_hash, :serializable_hash_without_instrumentation - end - - # enable instrumentation for serializable_hash (performance may be impacted) - def self.enable_instrumentation! - alias_method :serializable_hash, :serializable_hash_with_instrumentation - end - - disable_instrumentation! - def include_associations! _associations.each_key do |name| include!(name) if include?(name)