0 votes

I'd like to know how much memory a node or class takes.

Godot version 3.2.4.rc1
in Engine by (80 points)

1 Answer

+1 vote
Best answer

Simply convert your node or class to a PoolByteArray

var sizeof = 0
for bit in var2bytes(node):
    sizeof += bit
by (4,478 points)
selected by

I'm not sure if I am doing something wrong, but I always get the same results.

class Test:
    var a := 0

func _ready() -> void:
    var test := Test.new()
    var sizeof := 0
    for bit in var2bytes(test):
        sizeof += bit
    print(sizeof)

Output: 33


class Test:
    var a := "Test"

func _ready() -> void:
    var test := Test.new()
    var sizeof := 0
    for bit in var2bytes(test):
        sizeof += bit
    print(sizeof)

Output: 33

Interesting. seams like var2bytes was not incorrectly named

Looks like it may be correct. So i did a test of your posted code
using File.store_var(entity) and File.get_len() and in both tests got the same filesize even when saving it to disk so this may be the best option.

I will just mark this question as answered. Thanks for replying

Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.
Social login is currently unavailable. If you've previously logged in with a Facebook or GitHub account, use the I forgot my password link in the login box to set a password for your account. If you still can't access your account, send an email to webmaster@godotengine.org with your username.