Sha256: 41d506b9d0d8c77db87855acae3b4f036edbed6d84d817429f1e2f18d380cc76

Contents?: true

Size: 509 Bytes

Versions: 33

Compression:

Stored size: 509 Bytes

Contents

require 'objspace'

module Datadog
  module Runtime
    # Retrieves garbage collection statistics
    module ObjectSpace
      module_function

      def estimate_bytesize(object)
        return 0 unless ::ObjectSpace.respond_to?(:memsize_of)

        # Rough calculation of bytesize; not very accurate.
        object.instance_variables.inject(::ObjectSpace.memsize_of(object)) do |sum, var|
          sum + ::ObjectSpace.memsize_of(object.instance_variable_get(var))
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 2 rubygems

Version Path
ddtrace-0.50.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.49.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.48.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.47.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.46.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.45.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.44.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.43.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.42.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.41.0 lib/ddtrace/runtime/object_space.rb
ls-trace-0.2.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.40.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.39.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.38.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.37.0 lib/ddtrace/runtime/object_space.rb
ddtrace-0.36.0 lib/ddtrace/runtime/object_space.rb
ls-trace-0.1.2 lib/ddtrace/runtime/object_space.rb
ddtrace-0.35.2 lib/ddtrace/runtime/object_space.rb
ddtrace-0.35.1 lib/ddtrace/runtime/object_space.rb
ddtrace-0.35.0 lib/ddtrace/runtime/object_space.rb