aboutsummaryrefslogtreecommitdiffstats
path: root/eval/src/vespa/eval/eval/memory_usage_stuff.h
blob: 66cf6cbdffbb917298aab67df30788177cb3fd06 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.

#pragma once

#include <vespa/vespalib/util/memoryusage.h>
#include <vector>

namespace vespalib::eval {

template <typename T>
MemoryUsage self_memory_usage() { return MemoryUsage(sizeof(T), sizeof(T), 0, 0); }

template <typename V>
MemoryUsage vector_extra_memory_usage(const V &vec) {
    using T = typename V::value_type;
    MemoryUsage usage;
    usage.incAllocatedBytes(sizeof(T) * vec.capacity());
    usage.incUsedBytes(sizeof(T) * vec.size());
    return usage;
}

}