Godot: Buffer overflow saat membuat 14563 PackedScene.

Dibuat pada 21 Apr 2017  ·  3Komentar  ·  Sumber: godotengine/godot

Sistem operasi atau perangkat - versi Godot:
Linux - Ubuntu Mate 16.10 - Godot 2.1.2 stabil

Deskripsi masalah:
Saya menghadapi penggunaan RAM yang berlebihan dengan prototipe game Godot 2D saya, dan saya memutuskan untuk menemukan penyebabnya. Saya ingin melihat berapa banyak contoh PackedScene yang bisa ditangani Godot tanpa menghabiskan RAM saya.

Saya membangun adegan utama dengan arsitektur sederhana:

---> Node // Script attached  here
       +----> YSort

Saya juga membuat adegan yang disebut "Hexa.tscn", dengan arsitektur sederhana juga:

---> Area2D
       +-----> Sprite

Dalam skrip yang dilampirkan ke simpul akar adegan utama, saya mencoba menambahkan sebanyak mungkin contoh adegan "Hexa" di YSort Node.js.

Jika saya menambahkan 14562 instance adegan Hexa, semuanya berjalan dengan baik (~3% penggunaan 1 CPU, ~115Mo penggunaan RAM, yang mewakili: 29655 Objek, 3 Sumber Daya, 29127 Node)

Tetapi jika saya menambahkan 14563 instance adegan Hexa, saya menemukan kesalahan buffer overflow, sebagai berikut:

Di tab Kesalahan debugger:

Type: Error
Description:
Time: 0:00:00:0458
C Error: Condition '(buffer_end+room_needed) >= buffer_size' is true. returned ERR_OUT_OF_MEMORY
C Source: core/message_queue.ccp:54
C function: push_call

Di tab Output dari debugger:

failed method: Sprite:_update_callback target ID: 29681
TOTAL BYTES: 1048560
NULL count: 0
CALL _sort_children: 14564
CALL_update_callback: 29126

Apakah ini bug?

Langkah-langkah untuk mereproduksi:
Jalankan proyek Godot terlampir di editor Godot untuk melihat kesalahan di debugger.

Tautan ke proyek contoh minimal:
memtest.tar.gz

archived enhancement junior job core

Komentar yang paling membantu

Hai @Faless !

Saya senang mengetahui bahwa masalah ini tampaknya bukan bug, tetapi hanya kesalahan konfigurasi pengaturan di pihak saya.

Terima kasih atas pencerahannya :)

Mungkinkah menarik untuk memperbaiki pesan kesalahan, untuk memberi tahu pengguna tentang penyetelan pengaturan message_queue_size_kb ini?

Semua 3 komentar

Anda ingin menambah ukuran maksimum antrian pesan di:

project settings -> core -> message_queue_size_kb
ke sesuatu yang lebih tinggi.

Bagaimanapun saya akan menghindari membuat begitu banyak node karena alasan kinerja.

Hai @Faless !

Saya senang mengetahui bahwa masalah ini tampaknya bukan bug, tetapi hanya kesalahan konfigurasi pengaturan di pihak saya.

Terima kasih atas pencerahannya :)

Mungkinkah menarik untuk memperbaiki pesan kesalahan, untuk memberi tahu pengguna tentang penyetelan pengaturan message_queue_size_kb ini?

Saya ingin memberi tahu Anda bahwa di Godot 3.1 Alpha 2 pesan kesalahannya bahkan paling buruk:

image

Butuh beberapa waktu bagi saya untuk menyadari bahwa saya telah mencapai batas antrian pesan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat