Sha256: 8cff87b8c2f94cbcc41c4b8bb24671db18e6756a1ca38d9a777be5623cea8ad3

Contents?: true

Size: 605 Bytes

Versions: 2

Compression:

Stored size: 605 Bytes

Contents

require 'objspace'

module Datadog
  module Core
    module Environment
      # Retrieves garbage collection statistics
      # DEV: Currently only used for testing.
      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
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ddtrace-0.51.1 lib/datadog/core/environment/object_space.rb
ddtrace-0.51.0 lib/datadog/core/environment/object_space.rb