2016-08-21 1 views
1

Welche dieser Möglichkeiten ist besser (schneller, weniger Speicher)?Speichern Eigenschaften Datei MOST EFFICIENT

  1. Speicher Tausende von xyz.properties in jeder Datei - etwa 30 Schlüssel/Wert
  2. Ein .properties Datei mit allen Daten in ihm - über 30.000 Schlüsseln/Wert
+1

Vielleicht passt eine Datenbank hier besser? – Seelenvirtuose

+1

Wenn die Datei während des Lese-/Schreibvorgangs gesperrt ist und die Anwendung mehrere Threads enthält, treten Leistungsprobleme auf. Sicherlich passt eine Datenbank besser. – khargoosh

Antwort

1

Ich denke, es gibt zwei Aspekte hier:

  1. Wie Günther richtig ausgeführt hat, mit Dateien zu tun kommt mit Kopf. Sie benötigen "Dateigriffe"; und mögliche andere Datenstrukturen, die sich mit Dateien befassen; So gibt es viele verschiedene Ebenen, wo eine große Datei ist besser als mit vielen kleinen Dateien.
  2. Aber es gibt auch "Wartbarkeit". Das heißt: Aus Sicht der Entwickler ist es nicht so wichtig, sich mit einer Eigenschaftendatei zu befassen, die 30 K Schlüssel/Werte enthält. Wenn alles in einer Datei ist, müssen Sie diese große Datei ständig aktualisieren (und bereitstellen). Eine Änderung; und die ganze Datei muss ausgehen. Verfügen Sie über Mechanismen, die das "Neuladen" von Eigenschaften in Echtzeit ermöglichen? oder würde das bedeuten, dass Ihre Anwendung heruntergefahren werden muss? Und wie oft wird es vorkommen, dass Duplikate in dieser großen Datei vorhanden sind; oder schlechter: Sie legen einen Wert für Eigenschaft A in Zeile 5082, und dann jemand beachtet nicht und überschreibt Eigenschaft A in Zeile 29732. Es gibt viele Dinge, die schief gehen können; nur weil ich all das Zeug in einer Datei habe; unfähig, von irgendeinem Menschen mehr verdaut zu werden! Und seien Sie versichert: Debuggen so etwas wird hart sein.

Ich habe Ihnen nur einige Fragen zum Nachdenken gegeben; Sie möchten vielleicht einen Schritt zurückgehen, um mehr Anforderungen von Ihrem Ende zu geben.

In keiner Weise; Vielleicht möchten Sie in eine Lösung schauen, in der Entwickler mit den vielen kleinen Eigenschaftendateien umgehen (Sie wissen, wie eine Datei pro Funktionalität). Und dann verwenden Sie Tooling bauen, dass eine große Datei in der Produktionsumgebung verwendet.

Schließlich: Wenn Ihre Anwendung wirklich 30K Eigenschaften benötigt; Dann sollten Sie sich viel mehr Gedanken über die Qualität Ihres Produkts machen. In meinen Augen ist das kein Design "Geruch"; es klingt wie eine Designfaulheit. Bedeutung: keine vernünftige Anwendung sollte 30K Eigenschaften benötigen, um zu funktionieren.

1

Öffnen und Schließen 1000s Dateien ein großer Overhead mit dem Betriebssystem, also würden Sie wahrscheinlich mit einer großen Datei auskommen.