1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Downloads
  4. Galerie
    1. Alben
  5. Toolbox
    1. Passwort Generator
    2. Portchecker
  6. Mitglieder
    1. Mitgliedersuche
    2. Benutzer online
    3. Trophäen
    4. Team
Mi: 21 Mai 2025
  • Anmelden oder registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Forum
  • Dateien
  • Seiten
  • Bilder
  • Erweiterte Suche

Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.

Anmelden oder registrieren
    1. Nodezone.net Community
    2. Forum
    3. Gameserver & Hosting
    4. ArmA Series - ArmA 3 / Reforger
    5. Hilfeforum

    Kleine frage zu Stringtable (Performance)

    • TaktischerSpeck
    • 20. Juni 2018 um 05:50
    • Erledigt
    • TaktischerSpeck
      Profi
      Reaktionen
      292
      Trophäen
      9
      Beiträge
      1.211
      Dateien
      6
      Bilder
      35
      • 20. Juni 2018 um 05:50
      • #1

      Hallo,


      ich habe auf meinem Server als einzige "unterstütze" Sprache deutsch ausgewählt (Sprich einfach alle nicht deutschen "übersetzungen" gelöscht und German in Original umbenannt)

      Nun frag ich mich gerade beim erstellen von neuen Marker und Jobs ob es sinn macht die Stringtable weiterhin zu benutzen.

      Das ganze stelle ich im Kontext der Performance auch wenn man sich hier in einem nicht merkbaren bereich bewegt.


      Danke für eure Zeit :)

      Mit freundlichen Grüßen

      TaktischerSpeck - Vincent

      2945262602.gif

      Leidenschaftlicher Analphabet mit leichtem Drang zum Sabbern.

      2945262602.gif
      Welcome to Arma, a game where Physics don't give a f*ck.

      2945262602.gif
      If (ArmA == Bullshit) exitWith {[] call f*uckThisShit};

      2945262602.gif

      Kontaktmöglichkeiten

      Twitch

      Youtube

      Steam

      TLG (Einfach nur TLG ins IP Feld (trust me its gonna work))

      --alternativ--

      Ts.TheLastGamer.de

      Website

      Forum

      E-Mail: [email protected]

      Twitch

      Youtube

      Steam

      TLG (Einfach nur TLG ins IP Feld (trust me its gonna work))

      --alternativ--

      Ts.TheLastGamer.de

      Website

      Forum

      E-Mail: [email protected]

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 20. Juni 2018 um 06:43
      • #2

      Wenn du sowieso nur eine Sprache hast. Nutze die nicht. Das einzige was in deinem Fall eine Verwendung von Vorteil wäre wenn du mehrere Marker hast z.b. Polizei HQ dann kannst du sie in einem Rutsch umbenen ohne großes suchen

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • TaktischerSpeck
      Profi
      Reaktionen
      292
      Trophäen
      9
      Beiträge
      1.211
      Dateien
      6
      Bilder
      35
      • 20. Juni 2018 um 08:14
      • #3

      hm okay danke.

      aber gibts irgendwas zum thema Performance?

      Mit freundlichen Grüßen

      TaktischerSpeck - Vincent

      2945262602.gif

      Leidenschaftlicher Analphabet mit leichtem Drang zum Sabbern.

      2945262602.gif
      Welcome to Arma, a game where Physics don't give a f*ck.

      2945262602.gif
      If (ArmA == Bullshit) exitWith {[] call f*uckThisShit};

      2945262602.gif

      Kontaktmöglichkeiten

      Twitch

      Youtube

      Steam

      TLG (Einfach nur TLG ins IP Feld (trust me its gonna work))

      --alternativ--

      Ts.TheLastGamer.de

      Website

      Forum

      E-Mail: [email protected]

      Twitch

      Youtube

      Steam

      TLG (Einfach nur TLG ins IP Feld (trust me its gonna work))

      --alternativ--

      Ts.TheLastGamer.de

      Website

      Forum

      E-Mail: [email protected]

    • taker9999
      Nerd
      Reaktionen
      137
      Trophäen
      9
      Beiträge
      324
      Dateien
      1
      Bilder
      214
      • 20. Juni 2018 um 08:37
      • #4

      bei mir mach es keinen Unterschied. Zumindest spürbar. Habe bei unserem Server keine in Verwendung

      Rechtschreibfehler bitte in einen sack diesen Gut verschließen und in eine Schlucht werfen.:saint:

    • Marius1773
      Profi
      Reaktionen
      369
      Trophäen
      9
      Beiträge
      962
      • 20. Juni 2018 um 08:53
      • #5

      Aber im Grunde genommen ohne Stringtable ist man vielleicht mit nen paar Millisekunden besser dran ^^

      Weil mit Stringtable 2 Aktionen mehr ^^

      Windows Server :love:

      Das Heilige Buch der Arma 3 Scripter, die Arma 3 Scripter Bibel: https://community.bistudio.com/wiki/Category:Scripting_Commands

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 20. Juni 2018 um 09:33
      • #6
      Zitat von Marius1773

      Aber im Grunde genommen ohne Stringtable ist man vielleicht mit nen paar Millisekunden besser dran ^^

      Weil mit Stringtable 2 Aktionen mehr ^^

      Das kommt darauf an, wie die Funktion des auslesens von lokalisierten Texten beschaffen ist. Normalerweise wird bei ArmA 3 alles aus .pbo's in den RAM-Speicher eingelesen (gerade bei statischen, nicht anpassbaren Dateinamen) und von dort auch wieder ausgelesen. Somit wirst du wohl kaum Performance einbüßen müssen, TaktischerSpeck .

      Allerdings ist es falsch, anzunehmen Marius1773 , dass so ein Prozess Millisekunden dauert.

      Angenommen, man hat das Spiel mit 30 FPS am laufen: Dann gibt es nur maximal 16 Millisekunden pro Frame für die Berechnung eines Scriptes und anderen Funktionen (z.B. grafische Darstellung, etc.)

      Das auslesen allerdings befindet sich (nicht einmal) im Bereich von 1 μs. Also sollte das in keiner Weise relevant für die Performance sein, zu mal die Texte von Markern nur einmal zu Spielbeginn, also zum Beitritt der Mission, erstellt werden.

    • vabene1111
      Schüler
      Reaktionen
      121
      Trophäen
      9
      Beiträge
      72
      • 20. Juni 2018 um 10:13
      • #7

      Ich muss sagen ich finde die Frage dieses Beitrags auch recht interessant. Das ganze hat ja nicht nur damit zu tun ob und wie arma den stringtable in den ram legt, sondern auch damit wie die datenstruktur zur runtime ist. Ist das ganze sortiert, ggf. in irgendeiner Art von (hash)Map hinterlegt ? macht es einen unterschied wenn ich alle sachen in ein <package> tag lege weil er dann nur in einer möglicherweise strukturierten map suchen muss und nicht in jeweils ein pro package oder packt er es zur runtime eh alles zusammen ?

      Zitat von script /Vincent/dev/null

      Das auslesen allerdings befindet sich (nicht einmal) im Bereich von 1 μs

      Woher nimmst du diesen Wert ? und auf welcher stringtable basiert die messung ? Weil wenn ich nen Haufen mods habe und ne riesige stringtable ist die performance höchstwahrscheinlich unterschiedlich von einer kleinen stringtable mit nur ein paar hundert Einträgen (eine gewisse größe gibt es immer weil ja auch standard dinger existieren aber ..).


      Mann müsste das vermutlich mal mit verschiedenen Stringtables in dem performance tool probieren, aber selbst da wird das Ergebnis vermutlich ungenau sein, weil es da ja auch wieder von vielen rahmenfaktoren abhängt (mehr stringtable einträge bedeutet normalerweise auch mehr addons --> schelchtere performance usw.).

      RealLifeRPG Admin & DEV - http://www.realliferpg.de - Modded Arma 3 Roleplay seit 2014

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 20. Juni 2018 um 13:41
      • #8
      Zitat von vabene1111

      Ich muss sagen ich finde die Frage dieses Beitrags auch recht interessant. Das ganze hat ja nicht nur damit zu tun ob und wie arma den stringtable in den ram legt, sondern auch damit wie die datenstruktur zur runtime ist. Ist das ganze sortiert, ggf. in irgendeiner Art von (hash)Map hinterlegt ? macht es einen unterschied wenn ich alle sachen in ein <package> tag lege weil er dann nur in einer möglicherweise strukturierten map suchen muss und nicht in jeweils ein pro package oder packt er es zur runtime eh alles zusammen ?

      Woher nimmst du diesen Wert ? und auf welcher stringtable basiert die messung ? Weil wenn ich nen Haufen mods habe und ne riesige stringtable ist die performance höchstwahrscheinlich unterschiedlich von einer kleinen stringtable mit nur ein paar hundert Einträgen (eine gewisse größe gibt es immer weil ja auch standard dinger existieren aber ..).


      Mann müsste das vermutlich mal mit verschiedenen Stringtables in dem performance tool probieren, aber selbst da wird das Ergebnis vermutlich ungenau sein, weil es da ja auch wieder von vielen rahmenfaktoren abhängt (mehr stringtable einträge bedeutet normalerweise auch mehr addons --> schelchtere performance usw.).

      Zugegeben, meine Aussage war etwas leichtfertig. Allerdings, wenn man nur das localize'en von stringtable.xml-Einträgen betrachtet, ist die von mir angegebene Zahl tatsächlich noch zu groß. Die tatsächliche Geschwindigkeit der Auswahl eines Eintrages ist ca. 0,6 μs.

      1FEC6CF80F089E039663427C725421E61B2B8B9E


      Betrachtet man allerdings eine zufällige Auswahl an Einträgen, so ist diese Zeit ungefähr 4 μs. Dies liegt höchstwahrscheinlich nur an der Generation von einer zufälligen Zahl (dies kann unter Umständen viel Zeit (in Relation zu anderen mathematischen Aufgaben) beanspruchen).

      BD3579874F019C61368761B957C386812EBAE522

      In beiden Tests wurde dabei von einem Test-Paket (test_package.zip) 100000 Einträge genutzt.

      Vermutlich wird sich auch bei größeren Datenmengen (z.B. 1000000 oder 10000000 Einträge) die Geschwindigkeit des auslesen nicht wirklich verändern, da vermutlich (wie vabene1111 andeutete) Hash-Maps genutzt werden, welche gerade für eine solche Menge an Daten zum zwischenspeichern hochperformant sind.

      Durch Ergebnisse dieser Tests kann darauf geschlossen werden, dass die Performance vom auswählen von stringtable.xml-Einträgen gerade für die Markierungen auf der Karte nicht von Relevanz sind.


      Ich kann gerne später noch weitere Tests für die eben genannten Einträge erstellen, wenn die Nachfrage dazu besteht.

      Einmal editiert, zuletzt von script /Vincent/dev/null (20. Juni 2018 um 13:47)

    • Alice Kingsleigh
      Profi
      Reaktionen
      329
      Trophäen
      8
      Beiträge
      1.141
      • 21. Juni 2018 um 00:33
      • #9

      Schön zu lesen, dass nicht nur ich auf diese Idee und diesen Gedankengang kam. Ich persönlich bevorzuge allerdings die Stringtable zu nutzen. Wäre es der ultimative Performancefresser würde sie wohl eher selten bis gar keine Anwendung finden. Und wie Vincent anschaulich dargestelt hat scheint es sich ja nun wirklich um irrelevante Zeiten zu handeln. Ich bin ein riesen Fan von Stringtables, denn so hast du alle Texte schnell zur Hand. Denn wem sind noch keine Schreibfehler passiert oder wollte gar irgendwas komplett umbenennen? So muss man nicht alle seine Dateien danach durchsuchen, sondern findet es immer an Ort und Stelle. Insgesamt bin ich ein großer Fan von sinnvoll aufgeteilten Scripts ohne viel Schnick Schnack.

    • Stig
      Profi
      Reaktionen
      598
      Trophäen
      9
      Beiträge
      941
      • 21. Juni 2018 um 00:56
      • #10

      script /Vincent/dev/null

      Wie lange dauert es denn, einen String "auszuführen"?

      Also dass man mal testet wie lange der Ausdruck localize "STR_xy" braucht und wie lange der Ausdruck "xy" zur Ausführung braucht.

      Diese Nachricht wurde automatisch generiert. Antworten auf diese Nachricht können nicht empfangen werden. Bitte wenden Sie sich mit Anliegen an einen Administrator.

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 21. Juni 2018 um 01:05
      • #11

      Stig Dies dauert nicht lange, da im Hintergrund ein String erstellt und folglich sofort wieder zurückgegeben wird.

      Was möchte man daran außerdem testen? Dass direkte Objektverweise (ja, auch Texte, also Strings/Zeichenketten im übergeordneten Sinne) schnell sind, braucht denke ich nicht überprüft werden.

      Ich kann aber gerne auch dazu noch einen Test abgeben.

      Übrigens: Selbst mit 10 Millionen Einträgen in der stringtable.xml konnte ich weiterhin 0.0006 ms als Geschwindigkeit ermitteln.

    • Stig
      Profi
      Reaktionen
      598
      Trophäen
      9
      Beiträge
      941
      • 23. Juni 2018 um 18:59
      • #12
      Zitat von script /Vincent/dev/null

      Was möchte man daran außerdem testen?

      Als Vergleichswert, um den Overhead von der Nutzung vom stringtable zu bestimmen. Schließlich ging es in diesem Thread ja auch um den Vergleich Stringtable vs Strings

      Wenn dein Test ergibt, dass localize "STR_xy" 0.0006 ms dauert, sieht man zwar dass es schnell ist, aber nicht wie unterschiedlich es im Gegensatz zum direkten verwenden von Strings ist.

      Eventuell würde man ja sogar dabei feststellen, dass localize "STR_xy" nur 0.0006 ms dauert, während "xy" ganze 0.0012 ms dauert und könnte dann sagen, dass der stringtable doppelt so schnell arbeitet wie direkte Strings (ja, auch wenn es nicht so sein sollte).

      Diese Nachricht wurde automatisch generiert. Antworten auf diese Nachricht können nicht empfangen werden. Bitte wenden Sie sich mit Anliegen an einen Administrator.

    • script /Vincent/dev/null
      Kenner
      Reaktionen
      266
      Trophäen
      10
      Beiträge
      455
      • 24. Juni 2018 um 00:17
      • #13
      Zitat von Stig

      Als Vergleichswert, um den Overhead von der Nutzung vom stringtable zu bestimmen. Schließlich ging es in diesem Thread ja auch um den Vergleich Stringtable vs Strings

      Wenn dein Test ergibt, dass localize "STR_xy" 0.0006 ms dauert, sieht man zwar dass es schnell ist, aber nicht wie unterschiedlich es im Gegensatz zum direkten verwenden von Strings ist.

      Eventuell würde man ja sogar dabei feststellen, dass localize "STR_xy" nur 0.0006 ms dauert, während "xy" ganze 0.0012 ms dauert und könnte dann sagen, dass der stringtable doppelt so schnell arbeitet wie direkte Strings (ja, auch wenn es nicht so sein sollte).

      Hier ein Resultat für den String "test":


      AF60CC9E6D4B0E618D6D4FAE6B82FDEE37DA66B3

      Damit sollte allgemein gesagt sein, dass ein String immer schneller abrufbar ist, als ein gleich-langer stringtable.xml-Eintrag.

    Registrieren oder Einloggen

    Du bist noch kein Mitglied von NodeZone.net? Registriere dich kostenlos und werde Teil einer großartigen Community!

    Registrieren

    Wichtige Links & Informationen

    Server & Hosting-Ressourcen

      Server Administration & Hosting Basics

      Windows Server Support & Guides

      Linux Server Configuration & Help

      Setting up TeamSpeak 3 & VoIP Servers

      Domains & Web Hosting for Beginners & Professionals

      Cloud Hosting, Docker & Kubernetes Tutorials

    Gameserver & Modding-Ressourcen

      ArmA 3 Tutorials & Script Collection

      Renting & Operating Gameservers

      DayZ Server Management & Help

      FiveM (GTA V) Server & Script Development

      Rust Server Modding & Administration

      Setting up & Optimizing ARK Survival Servers

    NodeZone.net – Deine Community für Gameserver, Server-Hosting & Modding

      NodeZone.net ist dein Forum für Gameserver-Hosting, Rootserver, vServer, Webhosting und Modding. Seit 2015 bietet unsere Community eine zentrale Anlaufstelle für Server-Admins, Gamer und Technikbegeisterte, die sich über Server-Management, Hosting-Lösungen und Spielemodding austauschen möchten.


      Ob Anleitungen für eigene Gameserver, Hilfe bei Root- und vServer-Konfigurationen oder Tipps zu Modding & Scripting – bei uns findest du fundiertes Wissen und praxisnahe Tutorials. Mit einer stetig wachsenden Community findest du hier Antworten auf deine Fragen, Projektpartner und Gleichgesinnte für deine Gaming- und Serverprojekte. Schließe dich NodeZone.net an und werde Teil einer aktiven Community rund um Server-Hosting, Gameserver-Management und Modding-Ressourcen.

    Wer jetzt nicht teilt ist selber Schuld:
    1. Nutzungsbestimmungen
    2. Datenschutzerklärung
    3. Impressum
    4. Urheberrechts- oder Lizenzverstoß melden
  • Trimax Design coded & layout by Gino Zantarelli 2023-2025©
    Community-Software: WoltLab Suite™