forked from rethinkdb/rethinkdb
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmalloc.cc
More file actions
30 lines (28 loc) · 943 Bytes
/
malloc.cc
File metadata and controls
30 lines (28 loc) · 943 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
// Copyright 2010-2012 RethinkDB, all rights reserved.
#ifdef MALLOC_PROF
#include <google/tcmalloc.h>
#include <stdio.h>
#include <perfmon.hpp>
static perfmon_duration_sampler_t pm_operator_new(secs_to_ticks(1)),
pm_operator_delete(secs_to_ticks(1));
static perfmon_multi_membership_t pm_new_delete_membership(&get_global_perfmon_collection(),
&pm_operator_new, "operator_new",
&pm_operator_delete, "operator_delete",
NULLPTR);
void* operator new(size_t size) {
block_pm_duration set_timer(&pm_operator_new);
return tc_new(size);
}
void operator delete(void* p) __THROW {
block_pm_duration set_timer(&pm_operator_delete);
tc_delete(p);
}
void* operator new[](size_t size) {
block_pm_duration set_timer(&pm_operator_new);
return tc_newarray(size);
}
void operator delete[](void* p) __THROW {
block_pm_duration set_timer(&pm_operator_delete);
tc_deletearray(p);
}
#endif