Replace ares.cpp serialization logic with a custom graph traversal pass
@HaroldCindy ci sta già lavorando.
Dal 19/11/2025.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
At a high level, Ares is relatively simple. It has logic to walk the graph of references from the starting object, depth-first. It keeps track of nodes as it goes, filling in a reference to a previous object if it ever sees it referenced from another node.
Pretty typical graph traversal stuff, but the graph traversal logic is all mushed in with the object (de)serialization logic because Eris (and therefore Ares) manages traversal state using Lua APIs. That results in a lot of garbage related to traversal state being handed off to the GC, which I expect could result in extreme GC pressure on startup when lots of scripts are spinning back up.
I think the format itself makes sense, but the graph traversal logic should just be in C++ so we don't create tons of Lua objects that we won't need after Ares has run. Not to mention that stack imbalances with the traversal logic are verify difficult to debug currently.
- Lingua principale
- C++
- Stelle
- 17
- Fork
- 10
- Merge medio
- 3g 14h
- PR unite (30g)
- 3
Guida per i contributori
Apri la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di secondlife/slua
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
secondlife/slua#96 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
secondlife/slua#95 ·
-
documentation team:server
secondlife/slua#91 · 1 assegnatario ·
-
secondlife/slua#62 · 6 commenti · 1 assegnatario ·
-
enhancement
secondlife/slua#24 · 2 commenti · 1 assegnatario ·
Tutte le issue di secondlife/slua
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
flutter-webrtc/flutter-webrtc#2206 ·
-
litertlm-android AAR ships no consumer ProGuard rules → "mid == null" SIGABRT in minified apps Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google-ai-edge/LiteRT-LM#3739 ·
-
Component: GLib
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Mute ydb/tests/functional/dstool/test_canonical_requests.py.Test.test_group_take_snapshot in main Apertaai_reviewed
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
ydb-platform/ydb#53974 · 3 commenti ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
google/libultrahdr#485 ·