single f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
..
ut b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
README.md b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor.cpp f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor_bootstrapped.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor_coroutine.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor_coroutine.h 4b11037e5a Restoring authorship annotation for Daniil Cherednik <dcherednik@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor_coroutine_ut.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
actor_ut.cpp e2ac73225f Restoring authorship annotation for <lianabatalova@yandex-team.ru>. Commit 2 of 2. 3 years ago
actorid.cpp d507a9366b Restoring authorship annotation for <pkalinnikov@yandex-team.ru>. Commit 2 of 2. 3 years ago
actorid.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
actorsystem.cpp b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
actorsystem.h cf62db3a46 Restoring authorship annotation for <rumvadim@yandex-team.ru>. Commit 2 of 2. 3 years ago
actorsystem_ut.cpp 2e714b5ebd Restoring authorship annotation for Sergey Polovko <sergey@polovko.me>. Commit 2 of 2. 3 years ago
ask.cpp b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
ask.h b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
ask_ut.cpp b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
balancer.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
balancer.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
balancer_ut.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
buffer.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
buffer.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
callstack.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
callstack.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
config.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
cpu_manager.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
cpu_manager.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
cpu_state.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
defs.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_load.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_local.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_pb.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_pb.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_pb_payload_ut.cpp 30f4921b0f Restoring authorship annotation for <timestep@yandex-team.ru>. Commit 2 of 2. 3 years ago
event_pb_ut.cpp 667a4ee7da Restoring authorship annotation for Alexander Rutkovsky <alexvru@mail.ru>. Commit 2 of 2. 3 years ago
events.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
events_undelivered.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executelater.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_base.cpp f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_base.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_basic.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_basic.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_basic_ut.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_io.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_io.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_united.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_united.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_pool_united_ut.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_thread.cpp f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
executor_thread.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
hfunc.h b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago
interconnect.cpp 667a4ee7da Restoring authorship annotation for Alexander Rutkovsky <alexvru@mail.ru>. Commit 2 of 2. 3 years ago
interconnect.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
invoke.h 667a4ee7da Restoring authorship annotation for Alexander Rutkovsky <alexvru@mail.ru>. Commit 2 of 2. 3 years ago
io_dispatcher.cpp 667a4ee7da Restoring authorship annotation for Alexander Rutkovsky <alexvru@mail.ru>. Commit 2 of 2. 3 years ago
io_dispatcher.h 667a4ee7da Restoring authorship annotation for Alexander Rutkovsky <alexvru@mail.ru>. Commit 2 of 2. 3 years ago
lease.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
log.cpp f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
log.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
log_iface.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
log_settings.cpp f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
log_settings.h f7835298a8 Restoring authorship annotation for <single@yandex-team.ru>. Commit 2 of 2. 3 years ago
log_ut.cpp a0ffafe83b Restoring authorship annotation for <msherbakov@yandex-team.ru>. Commit 2 of 2. 3 years ago
mailbox.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
mailbox.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
mailbox_queue_revolving.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
mailbox_queue_simple.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
memory_track.cpp b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
memory_track.h b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
memory_tracker.cpp b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
memory_tracker.h b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
memory_tracker_ut.cpp b23c1d7a80 Restoring authorship annotation for <monster@yandex-team.ru>. Commit 2 of 2. 3 years ago
mon.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
mon_stats.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
monotonic.cpp 330c83f8c1 Restoring authorship annotation for Alexey Borzenkov <snaury@yandex-team.ru>. Commit 2 of 2. 3 years ago
monotonic.h 330c83f8c1 Restoring authorship annotation for Alexey Borzenkov <snaury@yandex-team.ru>. Commit 2 of 2. 3 years ago
probes.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
probes.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
process_stats.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
process_stats.h 0fd1998e1b Restoring authorship annotation for Alexey Efimov <xeno@prnwatch.com>. Commit 2 of 2. 3 years ago
scheduler_actor.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_actor.h 330c83f8c1 Restoring authorship annotation for Alexey Borzenkov <snaury@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_actor_ut.cpp 30f4921b0f Restoring authorship annotation for <timestep@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_basic.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_basic.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_cookie.cpp 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_cookie.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
scheduler_queue.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
servicemap.h 3bf10d3f40 Restoring authorship annotation for <ddoarn@yandex-team.ru>. Commit 2 of 2. 3 years ago
worker_context.cpp e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
worker_context.h e5d4696304 Restoring authorship annotation for <serxa@yandex-team.ru>. Commit 2 of 2. 3 years ago
ya.make b6f3a80f7c Restoring authorship annotation for <amatanhead@yandex-team.ru>. Commit 2 of 2. 3 years ago

README.md

Memory tracker

https://a.yandex-team.ru/arc/trunk/arcadia/library/cpp/actors/core/memory_track.h

Использование:

  • отслеживание аллокаций экземпляров конкретного класса через new/delete и new[]/delete[]
  • отслеживание аллокаций в контейнерах
  • ручное отслеживание моментов аллокации/деаллокации

Отслеживание аллокаций класса через new/delete

Использование с автоматически генерируемой меткой:

#include <library/cpp/actors/core/memory_track.h>

struct TTypeLabeled
    : public NActors::NMemory::TTrack<TTypeLabeled>
{
    char payload[16];
};

Использование с пользовательским именем метки:

#include <library/cpp/actors/core/memory_track.h>

static const char NamedLabel[] = "NamedLabel";

struct TNameLabeled
    : public NActors::NMemory::TTrack<TNameLabeled, NamedLabel>
{
    char payload[32];
};

Отслеживание аллокаций в контейнерах

#include <library/cpp/actors/core/memory_track.h>

static const char InContainerLabel[] = "InContainerLabel";

struct TInContainer {
    char payload[16];
};

std::vector<TInContainer, NActors::NMemory::TAlloc<TInContainer>> vecT;

std::vector<TInContainer, NActors::NMemory::TAlloc<TInContainer, InContainerLabel>> vecN;

using TKey = int;

std::map<TKey, TInContainer, std::less<TKey>,
    NActors::NMemory::TAlloc<std::pair<const TKey, TInContainer>>> mapT;

std::map<TKey, TInContainer, std::less<TKey>,
    NActors::NMemory::TAlloc<std::pair<const TKey, TInContainer>, InContainerLabel>> mapN;

std::unordered_map<TKey, TInContainer, std::hash<TKey>, std::equal_to<TKey>,
    NActors::NMemory::TAlloc<std::pair<const TKey, TInContainer>>> umapT;

std::unordered_map<TKey, TInContainer, std::hash<TKey>, std::equal_to<TKey>,
    NActors::NMemory::TAlloc<std::pair<const TKey, TInContainer>, InContainerLabel>> umapN;

Ручное отслеживание аллокаций/деаллокаций

#include <library/cpp/actors/core/memory_track.h>

static const char ManualLabel[] = "ManualLabel";

...
NActors::NMemory::TLabel<ManualLabel>::Add(size);

...
NActors::NMemory::TLabel<ManualLabel>::Sub(size);

Собираемые метрики

Сервис utils, пользовательская метка label, сенсоры:

  • MT/Count: количество аллокаций в моменте
  • MT/Memory: аллоцированная память в моменте
  • MT/PeakCount: пиковое значение количества аллокаций (сэмплится с фиксированной частотой)
  • MT/PeakMemory: пиковое значение аллоцированной памяти