Class: RubyProf::Allocation

Inherits:
Object
  • Object
show all
Defined in:
ext/ruby_prof/rp_allocation.c

Instance Method Summary collapse

Instance Method Details

#_dump_dataObject

:nodoc:



239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
# File 'ext/ruby_prof/rp_allocation.c', line 239

static VALUE prof_allocation_dump(VALUE self)
{
    prof_allocation_t* allocation = prof_get_allocation(self);

    VALUE result = rb_hash_new();

    rb_hash_aset(result, ID2SYM(rb_intern("key")), INT2FIX(allocation->key));
    rb_hash_aset(result, ID2SYM(rb_intern("klass_name")), prof_allocation_klass_name(self));
    rb_hash_aset(result, ID2SYM(rb_intern("klass_flags")), INT2FIX(allocation->klass_flags));
    rb_hash_aset(result, ID2SYM(rb_intern("source_file")), allocation->source_file);
    rb_hash_aset(result, ID2SYM(rb_intern("source_line")), INT2FIX(allocation->source_line));
    rb_hash_aset(result, ID2SYM(rb_intern("count")), INT2FIX(allocation->count));
    rb_hash_aset(result, ID2SYM(rb_intern("memory")), LONG2FIX(allocation->memory));

    return result;
}

#_load_data(data) ⇒ Object

:nodoc:



257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
# File 'ext/ruby_prof/rp_allocation.c', line 257

static VALUE prof_allocation_load(VALUE self, VALUE data)
{
    prof_allocation_t* allocation = prof_get_allocation(self);
    allocation->object = self;

    allocation->key = FIX2LONG(rb_hash_aref(data, ID2SYM(rb_intern("key"))));
    allocation->klass_name = rb_hash_aref(data, ID2SYM(rb_intern("klass_name")));
    allocation->klass_flags = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("klass_flags"))));
    allocation->source_file = rb_hash_aref(data, ID2SYM(rb_intern("source_file")));
    allocation->source_line = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("source_line"))));
    allocation->count = FIX2INT(rb_hash_aref(data, ID2SYM(rb_intern("count"))));
    allocation->memory = FIX2LONG(rb_hash_aref(data, ID2SYM(rb_intern("memory"))));

    return data;
}

#countNumeric

Returns the number of times this class has been allocated.

Returns:

  • (Numeric)


222
223
224
225
226
# File 'ext/ruby_prof/rp_allocation.c', line 222

static VALUE prof_allocation_count(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->count);
}

#klass_flagsInteger

Returns the klass flags

Returns:

  • (Integer)


192
193
194
195
196
# File 'ext/ruby_prof/rp_allocation.c', line 192

static VALUE prof_allocation_klass_flags(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->klass_flags);
}

#klassClass

Returns the type of Class being allocated.

Returns:

  • (Class)


177
178
179
180
181
182
183
184
185
# File 'ext/ruby_prof/rp_allocation.c', line 177

static VALUE prof_allocation_klass_name(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);

    if (allocation->klass_name == Qnil)
        allocation->klass_name = resolve_klass_name(allocation->klass, &allocation->klass_flags);

    return allocation->klass_name;
}

#lineNumeric

Returns the the line number where objects were allocated.

Returns:

  • (Numeric)


212
213
214
215
216
# File 'ext/ruby_prof/rp_allocation.c', line 212

static VALUE prof_allocation_source_line(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return INT2FIX(allocation->source_line);
}

#memoryNumeric

Returns the amount of memory allocated.

Returns:

  • (Numeric)


232
233
234
235
236
# File 'ext/ruby_prof/rp_allocation.c', line 232

static VALUE prof_allocation_memory(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return ULL2NUM(allocation->memory);
}

#source_fileString

Returns the the line number where objects were allocated.

Returns:

  • (String)


202
203
204
205
206
# File 'ext/ruby_prof/rp_allocation.c', line 202

static VALUE prof_allocation_source_file(VALUE self)
{
    prof_allocation_t* allocation = prof_allocation_get(self);
    return allocation->source_file;
}