Zeitpunkt zum Config auslesen

Dieses Thema im Forum "Programmierung" wurde erstellt von Sabbertran, 16. Juni 2015.

  1. Sabbertran
    Offline

    Sabbertran

    Registriert seit:
    24. April 2012
    Beiträge:
    75
    Minecraft:
    Sabbertran
    Hey,
    ich habe bis jetzt immer Werte welche in der config.yml stehen beim Start des Plugins in Variablen gespeichert.
    Jetzt stellt sich mir nur die Frage ob das überhaupt notwendig ist oder ob man einfach zu jedem X-beliebigen Zeitpunkt die Werte auslesen kann.

    Gibts da Performance Unterschiede o.ä. von denen man wissen sollte?

    Gruß
    Sabbertran
     
    #1
  2. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Wenn du im Hauptthread Werte benutzt solltest du diese nicht jedes mal aus der Datei laden, dadurch entstehen gewaltige Latenzen. Insbesondere wenn die Festplatte gerade mit etwas anderem beschäftigt ist, aber selbst eine Datei von einer SSD zu lesen braucht im vergleich zu einem Wert im RAM oder gar Cache eine Ewigkeit.
     
    #2
  3. Sabbertran
    Offline

    Sabbertran

    Registriert seit:
    24. April 2012
    Beiträge:
    75
    Minecraft:
    Sabbertran
    Das habe ich mir auch schon gedacht.
    Jedoch weiß ich nicht ob die FileConfiguration die man über getConfig() erhält die Werte jedesmal von der Platte liest oder auch schon irgendwo im RAM zwischenspeichert.
     
    #3
  4. [Dev] iTzSasukeHDxLP
    Offline

    [Dev] iTzSasukeHDxLP Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    938

    Die list du jedesmal aus der Festplatte aus.
     
    #4
  5. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Nein, getConfig() lädt nur von der Festplatte geladen, wenn die konfiguration noch nicht geladen wurde. Ansonsten lädt nur reloadConfig() die Konfiguration von der Festplatte.
    Aus dem Bukkit-Wiki:
    http://wiki.bukkit.org/Configuration_API_Reference

    Die Werte solltest du trotzdem noch einmal in einer Variable speichern. Denn je länger ein Pfad ist (Mehr '.'), desto länger braucht es, um die Variable auszulesen.
     
    #5
  6. Sabbertran
    Offline

    Sabbertran

    Registriert seit:
    24. April 2012
    Beiträge:
    75
    Minecraft:
    Sabbertran
    Danke für eure Hilfe.
     
    #6
  7. 可愛い
    Offline

    可愛い

    Registriert seit:
    19. Mai 2014
    Beiträge:
    654
    Steht das irgendwo in der API oder hast du das im Quellcode gefunden? Für mich macht das wenig sinn, der Wert wird vermutlich in einer Hashtabelle gespeichert, da spielt die länge des Keys nur eine untergeordnete Rolle.
     
    #7
  8. https://github.com/Bukkit/Bukkit/bl.../bukkit/configuration/MemorySection.java#L201

    Der Key wird also jederzeit aufgesplittet. Performancetechnisch ist dies aber weniger relevant.
     
    #8
    MiCrJonas gefällt das.