Module: RailsMemoryProfiler::ReportStore
- Defined in:
- lib/rails_memory_profiler/report_store.rb
Class Method Summary collapse
Class Method Details
.all ⇒ Object
17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/rails_memory_profiler/report_store.rb', line 17 def all mutex.synchronize do stored = @stored || 0 return [] if stored.zero? if stored < capacity buffer.first(stored) else buffer[@write_pos..] + buffer[0...@write_pos] end end end |
.clear ⇒ Object
30 31 32 |
# File 'lib/rails_memory_profiler/report_store.rb', line 30 def clear mutex.synchronize { reset! } end |
.find(id) ⇒ Object
13 14 15 |
# File 'lib/rails_memory_profiler/report_store.rb', line 13 def find(id) all.find { |r| r[:id] == id } end |
.push(report) ⇒ Object
4 5 6 7 8 9 10 11 |
# File 'lib/rails_memory_profiler/report_store.rb', line 4 def push(report) mutex.synchronize do ensure_buffer_size buffer[@write_pos] = report.merge(id: SecureRandom.hex(6)) @write_pos = (@write_pos + 1) % capacity @stored = [@stored + 1, capacity].min end end |
.size ⇒ Object
34 35 36 |
# File 'lib/rails_memory_profiler/report_store.rb', line 34 def size mutex.synchronize { @stored || 0 } end |