Profiling for sidekiq
This commit is contained in:
parent
09376c83e5
commit
68df83eef5
|
@ -14,50 +14,4 @@ if ENV["PROFILE"]
|
|||
require "objspace"
|
||||
ObjectSpace.trace_object_allocations_start
|
||||
Sidekiq.logger.info "allocations tracing enabled"
|
||||
|
||||
# module Sidekiq
|
||||
# module Middleware
|
||||
# module Server
|
||||
# class Profiler
|
||||
# # Number of jobs to process before reporting
|
||||
# JOBS = 100
|
||||
|
||||
# class << self
|
||||
# mattr_accessor :counter
|
||||
# self.counter = 0
|
||||
|
||||
# def synchronize(&block)
|
||||
# @lock ||= Mutex.new
|
||||
# @lock.synchronize(&block)
|
||||
# end
|
||||
# end
|
||||
|
||||
# def call(worker_instance, item, queue)
|
||||
# begin
|
||||
# yield
|
||||
# ensure
|
||||
# self.class.synchronize do
|
||||
# self.class.counter += 1
|
||||
|
||||
# if self.class.counter % JOBS == 0
|
||||
# Sidekiq.logger.info "reporting allocations after #{self.class.counter} jobs"
|
||||
# GC.start
|
||||
# out = File.open("/tmp/heap.json", "w")
|
||||
# ObjectSpace.dump_all(output: out)
|
||||
# out.close
|
||||
# Sidekiq.logger.info "heap saved to heap.json"
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
# end
|
||||
|
||||
# Sidekiq.configure_server do |config|
|
||||
# config.server_middleware do |chain|
|
||||
# chain.add Sidekiq::Middleware::Server::Profiler
|
||||
# end
|
||||
# end
|
||||
end
|
Loading…
Reference in New Issue