Profiling for sidekiq

This commit is contained in:
Wedge 2019-02-10 16:44:58 +03:00
parent 09376c83e5
commit 68df83eef5
1 changed files with 1 additions and 47 deletions

View File

@ -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
end