Class: Vernier::MemoryTracker

Inherits:
Object
  • Object
show all
Defined in:
ext/vernier/memory.cc

Instance Method Summary collapse

Instance Method Details

#recordObject



109
110
111
112
113
114
# File 'ext/vernier/memory.cc', line 109

VALUE memory_tracker_record(VALUE self) {
    MemoryTracker *memory_tracker;
    TypedData_Get_Struct(self, MemoryTracker, &rb_memory_tracker_type, memory_tracker);
    memory_tracker->record();
    return self;
}

#resultsObject



116
117
118
119
120
121
122
123
124
125
126
# File 'ext/vernier/memory.cc', line 116

VALUE memory_tracker_results(VALUE self) {
    MemoryTracker *memory_tracker;
    TypedData_Get_Struct(self, MemoryTracker, &rb_memory_tracker_type, memory_tracker);
    VALUE timestamps = rb_ary_new();
    VALUE memory = rb_ary_new();
    for (const auto& record: memory_tracker->results) {
        rb_ary_push(timestamps, ULL2NUM(record.timestamp.nanoseconds()));
        rb_ary_push(memory, ULL2NUM(record.memory_rss));
    }
    return rb_ary_new_from_args(2, timestamps, memory);
}

#startObject



94
95
96
97
98
99
# File 'ext/vernier/memory.cc', line 94

VALUE memory_tracker_start(VALUE self) {
    MemoryTracker *memory_tracker;
    TypedData_Get_Struct(self, MemoryTracker, &rb_memory_tracker_type, memory_tracker);
    memory_tracker->start();
    return self;
}

#stopObject



101
102
103
104
105
106
107
# File 'ext/vernier/memory.cc', line 101

VALUE memory_tracker_stop(VALUE self) {
    MemoryTracker *memory_tracker;
    TypedData_Get_Struct(self, MemoryTracker, &rb_memory_tracker_type, memory_tracker);

    memory_tracker->stop();
    return self;
}