Performance
Die ehrliche Version: Die Scripts sind nicht der schwere Teil. Die Map ist es.
Die Map
Abschnitt betitelt „Die Map“[the_apocalypse_project] ist eine Umwandlung der ganzen Karte über Los Santos, etwa 166 ymaps und ein MLO. Viele seiner ymaps haben Streaming-Extents von Kilometern, viel größer als die Props darin. Die Engine denkt also, die halbe Map sei gleichzeitig in Reichweite, und alles streamt im selben Moment um einen spawnenden Spieler herum ein. Daher kommt der Pool-Druck.
Die echte Lösung liegt in den Maps: die aufgeblähten Extents in CodeWalker mit sicherem Spielraum verkleinern. Das bringt mehr als jede Pool-Zeile unten.
Pool-Größen
Abschnitt betitelt „Pool-Größen“server.cfg erhöht einige Pools mit increase_pool_size (der moderne Weg, gameconfig.xml wird nicht mehr beachtet):
increase_pool_size "Building" 500increase_pool_size "StaticBounds" 2000increase_pool_size "EntityDescPool" 5000increase_pool_size "TxdStore" 8000increase_pool_size "FragmentStore" 4000increase_pool_size "fragInstGta" 800increase_pool_size "Object" 800# + interior/portal/occlusion, LightEntity, AttachmentExtensionDiese Werte sind absichtlich moderat, nicht das Maximum. Das Maximum kostet bei jedem Client Speicher, und Building weit über ~500 verursacht eigene Probleme.
Behalte set onesync_population false bei. Ambient-Population füllt genau die Pools, die du nicht erhöhen kannst.
Zombies
Abschnitt betitelt „Zombies“Die Zombie-Limits sinken bereits von selbst:
- Server-Frametime über
Zombies.Net.perfBudgetMs(70) senkt das Limit, bis hinunter zuperfMinFactor - Gesamtzahl der Entities zwischen
entitySoftundentityHard(1400 / 1900) senkt es, und über hard verschwinden die am weitesten entfernten Walker - ein Spieler unter
fpsLowFPS bekommt weniger Walker in seiner Nähe
Stelle perfBudgetMs anhand des Frame-Durchschnitts ein, den /znet auf einem leeren Server zeigt. Ist dein Server einfach langsamer, schneidet der Standardwert ständig Zombies ab.
Auf der Client-Seite verhindert Streaming.PoolGuard.clientPedLimit (180) neue Walker-Peds, bevor der Ped-Pool voll ist, und ein Notfall-Cull entfernt zuerst Leichen, dann die am weitesten entfernten Walker.
resmon 1 -- client, per resource msprofiler record 500 -- then profiler view/znet -- zombie caps and server frame/pools -- client ped poolEs gibt kein /bsperf, die Resources führen keine internen Timer. Nimm resmon.
Im Oktober habe ich jedes Client-Script durchgesehen. Fast jede Schleife pro Frame ist bereits gedrosselt (sie schläft im Leerlauf 250-1000 ms). Die wenigen, die immer pro Frame laufen, sind Dinge, die die Engine jeden Frame braucht (HUD-Teile ausblenden, Population Density, Blackout-Lichter). Wenn du eine von uns im Leerlauf hoch in resmon siehst, ist das ein Bug, sag mir Bescheid.
bs19.org · Privacy · Terms · Cookie settings
Cookies and outside content
The site only needs two essential cookies to keep you logged in and protect forms. Videos and streams from YouTube and Twitch load from their servers, which can set their own cookies, so they stay off until you say yes. Nothing is pre-ticked and you can change your mind any time with "Cookie settings" at the bottom of every page. Details.
Questions about the server, the framework or the site? A real person reads this, usually within a day.