diff options
author | Anna Henningsen <anna@addaleax.net> | 2018-06-10 16:40:13 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2018-07-13 19:53:15 +0200 |
commit | 57e301539bff2599974b7269a56377330c9b730e (patch) | |
tree | 6f5c866728f22bbacb8dadb89a2c8a12e5b66508 /src/node_messaging.cc | |
parent | 36cc5f5caf52af895079d153a9131fe2b0c6b8f9 (diff) | |
download | android-node-v8-57e301539bff2599974b7269a56377330c9b730e.tar.gz android-node-v8-57e301539bff2599974b7269a56377330c9b730e.tar.bz2 android-node-v8-57e301539bff2599974b7269a56377330c9b730e.zip |
src: enable more detailed memory tracking
This will enable more detailed heap snapshots based on
a newer V8 API.
This commit itself is not tied to that API and could
be backported.
PR-URL: https://github.com/nodejs/node/pull/21742
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/node_messaging.cc')
-rw-r--r-- | src/node_messaging.cc | 22 |
1 files changed, 14 insertions, 8 deletions
diff --git a/src/node_messaging.cc b/src/node_messaging.cc index 24a99c8bc6..20e0c7673b 100644 --- a/src/node_messaging.cc +++ b/src/node_messaging.cc @@ -325,6 +325,14 @@ Maybe<bool> Message::Serialize(Environment* env, return Just(true); } +void Message::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackThis(this); + tracker->TrackField("array_buffer_contents", array_buffer_contents_); + tracker->TrackFieldWithSize("shared_array_buffers", + shared_array_buffers_.size() * sizeof(shared_array_buffers_[0])); + tracker->TrackField("message_ports", message_ports_); +} + MessagePortData::MessagePortData(MessagePort* owner) : owner_(owner) { } MessagePortData::~MessagePortData() { @@ -332,6 +340,12 @@ MessagePortData::~MessagePortData() { Disentangle(); } +void MessagePortData::MemoryInfo(MemoryTracker* tracker) const { + Mutex::ScopedLock lock(mutex_); + tracker->TrackThis(this); + tracker->TrackField("incoming_messages", incoming_messages_); +} + void MessagePortData::AddToIncomingQueue(Message&& message) { // This function will be called by other threads. Mutex::ScopedLock lock(mutex_); @@ -688,14 +702,6 @@ void MessagePort::Drain(const FunctionCallbackInfo<Value>& args) { port->OnMessage(); } -size_t MessagePort::self_size() const { - Mutex::ScopedLock lock(data_->mutex_); - size_t sz = sizeof(*this) + sizeof(*data_); - for (const Message& msg : data_->incoming_messages_) - sz += sizeof(msg) + msg.main_message_buf_.size; - return sz; -} - void MessagePort::Entangle(MessagePort* a, MessagePort* b) { Entangle(a, b->data_.get()); } |