Sha256: 5b6b5cc01d92547d3b2bbdf037add6367b5f57675481f84371c6283e464517fe

Contents?: true

Size: 1.36 KB

Versions: 2

Compression:

Stored size: 1.36 KB

Contents

/* Copyright (C) 2005-2019 Shugo Maeda <shugo@ruby-lang.org> and Charlie Savage <cfis@savagexi.com>
   Please see the LICENSE file for copyright and distribution information */

#ifndef __rp_measurementMENT_H__
#define __rp_measurementMENT_H__

#include "ruby_prof.h"

extern VALUE mMeasure;

typedef double (*get_measurement)(rb_trace_arg_t *trace_arg);

typedef enum
{
    MEASURE_WALL_TIME,
    MEASURE_PROCESS_TIME,
    MEASURE_ALLOCATIONS,
    MEASURE_MEMORY
} prof_measure_mode_t;

typedef struct
{
    get_measurement measure;
    prof_measure_mode_t mode;
    double multiplier;
    bool track_allocations;
} prof_measurer_t;

/* Callers and callee information for a method. */
typedef struct prof_measurement_t
{
    double total_time;
    double self_time;
    double wait_time;
    int called;
    VALUE object;
} prof_measurement_t;

prof_measurer_t *prof_get_measurer(prof_measure_mode_t measure, bool track_allocations);
double prof_measure(prof_measurer_t *measurer, rb_trace_arg_t* trace_arg);

prof_measurement_t *prof_measurement_create(void);
void prof_measurement_free(prof_measurement_t* measurement);
VALUE prof_measurement_wrap(prof_measurement_t *measurement);
prof_measurement_t* prof_get_measurement(VALUE self);
void prof_measurement_mark(void *data);

void rp_init_measure(void);

#endif //__rp_measurementMENT_H__

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ruby-prof-1.1.0-x64-mingw32 ext/ruby_prof/rp_measurement.h
ruby-prof-1.1.0 ext/ruby_prof/rp_measurement.h