Leitfaden zur Unity-Programmoptimierung

Leistungsanalyse

  1. Separate Hotspots

Fähigkeitsfreigabe, KI-System, physische Kollision usw.;

  1. Solides Betriebssystem und zugrunde liegendes Wissen

Thread hängt;
Häufige E/A-Vorgänge

  1. Führen Sie ein gutes Entwicklungsprotokoll
  2. Verwenden Sie Tools wie Leistungsanalyse und Speicheranalyse
  3. Achten Sie weiterhin auf Probleme mit der Projektleistung

Leitfaden zur Kundenoptimierung

  1. Algorithmusoptimierung

(1) Zeit für Raum oder Raum für Zeit
(2) Lokale optimale Lösung
(3) Problem teilen und herrsche (Modulunterteilung) , reduzieren Sie den Berechnungsmaßstab)
(4) Code-Schreibgewohnheiten

  1. Speicheroptimierung und GC-Recycling

Schwerpunkt der Speicheroptimierung: Modelle, Texturen, Soundeffekte und andere Ressourcen
(1) Ressourcenfreigabe (für kleine Spiele wird empfohlen, dass der Speicher nicht unmittelbar nach der Ressourcenfreigabe freigegeben wird Die Verwendung ist abgeschlossen, wird jedoch vorübergehend gespeichert, um die Ladezeit zu verkürzen.) ; Es wird empfohlen, für größere Spiele eine Speicherfreigabeverwaltung durchzuführen; 200 MB-Abgrenzung)
(2) Die Ressourcenkomprimierung reduziert den Speicher nicht, sondern verringert ihn die Größe des Paketkörpers, da das Lesen von Ressourcen von der Festplatte in den Speicher einige Zeit in Anspruch nimmt. Dekomprimierte, effektive Methoden: Reduzieren Sie die Anzahl der Ressourcen, reduzieren Sie die Texturauflösung oder die Anzahl der Modellscheitelpunkte und verwenden Sie die von der Zielplattform unterstützte Texturkomprimierungsmethode
Objektpool: Wiederverwendung, Reduzierung der Anzahl der Erstellungen und Zerstörungen.
Kartenentwurfsplan: Entwerfen Sie die Karte basierend auf vorhandenen Grafikelementen.
GC-Speicherbereinigung:
Neu reduzieren und löschen, was möglicherweise der Fall ist GC-Betrieb erfolgt
Kunst- und Planungsoptimierung machen 90 % aus
Programmoptimierung macht 10 % aus

  1. Optimierung des Videospeichers

(1) Vermeiden Sie bei der Albumverwaltung eine große Anzahl von Leerzeichen
(2) Wählen Sie für die Bildkomprimierung die von der Zielplattform unterstützte Komprimierungsmethode aus

  1. Multi-Thread-Optimierung

(1) Ressourcen-Hot-Update-Download
(2) E/A-Vorgang
(3) Berechnung

  1. Optimierung der Physik-Engine

(1) Steuern Sie die Anzahl der starren Körper des Objekts
(2) Passen Sie den physischen Collidertyp an (die Leistung des sphärischen Colliders ist besser als die des > rechteckigen Colliders). besser als der > Grid Collider)
(3) Legen Sie die Parameterkonfiguration der Physik-Engine fest
(4) Wählen Sie die Physik-Engine des Projekts aus

  1. Paketoptimierung

(1) Beschneiden Sie die Spiel-Engine
(2) Reduzieren Sie das Ressourcenvolumen, komprimieren Sie Ressourcen, führen Sie die Anzahl der Gesichter zusammen
(3) Leeren Sie die Paket, Ressourcen Put-Server

  1. Angepasste Rendering-Pipeline und Shader-Optimierung

(1) Unitymore wählt die Vorwärts-Rendering-Pipeline und definiert eine Reihe von Strategien zum Zeichnen von Szenenobjekten (mehrere Lichtquellen, mehrere Schatten). Vorteile: Es unterstützt unbegrenzte Lichtquellen; Nachteile: Das mobile Spiel schaltet auf 2- 4 Lichtquellen und friert ein, schlechte Leistung
(2) Angepasste Rendering-Pipeline
Leichte Rendering-Pipeline, unterstützt bis zu 4 Lichtquellen und alle Lichtquellen zeichnen Objekte zusammen ;< a i=3> Shader optimieren: (1) Algorithmuseffizienz verbessern (2) Effektkonsistenz


  1. Drawcall, SetPass Call, Anzahl der Modellgesichter, Detailverbesserung, LOD

Leitfaden zur serverseitigen Optimierung

  1. Netzwerkoptimierung

Echtzeitoptimierung: TCP-Kommunikation, TCP-Parameter optimieren; UDP verbessert die Kommunikationsgeschwindigkeit; zuverlässiges UDP sorgt für Echtzeit und Genauigkeit; Multithread-Verarbeitung von Netzwerk-E/A

  1. Datenbankoptimierung

Unterdatenbank, Untertabelle, Index erstellen, In-Memory-Datenbank erstellen; Redis-Cache-Ausfall verhindern;

  1. Speicheroptimierung

(1) Verbessern Sie die CPU- und Speichernutzung und verbessern Sie die Leistung
(2) Online-Last, die dem Zielrückspiegel entspricht
(3) Long- Laufzeit läuft; Speicherrobustheit (relativ stabil)
(4) Speicherfragmentierung vermeiden

  1. Multi-Core-Optimierung

Multiprozess, Multithread

  1. Algorithmusoptimierung

Algorithmische Ideen: Teile und herrsche, lokale Optimalität, Eliminierung usw.
Klassischer Algorithmus AOI usw.
Codierungsgewohnheiten

  1. Betriebs- und Wartungsoptimierung

Partitionieren und bedienen Sie gemäß den bewerteten Designzielen und stellen Sie die Ausrüstung mit dem geringsten Nutzen bereit und optimieren Sie sie

  1. Einzelpunktoptimierung

Gemeinsamer Server für mehrere Partitionen

  1. Optimierung der Datensicherheit

(1) Protokollserver wird separat verwaltet;
(2) Datenbankserver, Cluster, Backup;

Aktionsleitfaden

  1. Lokalisierung von Leistungsproblemen
  2. Analysieren Sie die Gründe
  3. Schlagen Sie Lösungen zur Lösung von Problemen vor
  4. Erfahren Sie mehr, sammeln Sie mehr, denken Sie mehr

Guess you like

Origin blog.csdn.net/weixin_42186644/article/details/120672549