Bei der Verwendung mehrerer Objekte oder Big -Data -Strukturen besteht die Möglichkeit, die Leistung zu verbessern, um die Verzögerung des Ladens oder Zuordnungen (zur Implementierung) zu verwenden. Zeit -bis -Zeit -Operationen wurden wie möglich verkürzt und nie realisiert. Ich verwende einige Beispiele, um zu erklären, wie eine verzögerte Ladetechnologie in Java verwendet wird, und gibt einige Richtlinien, die einfacher (verwendet) und als Teil der Kernsprache in anderen Sprachen sein können.
Ein Verwendungsszenario besteht darin, Hunderte von Metadaten und Messobjekten zu zeigen, die Domänenobjekte durch JTable würdig sind. Initialisieren Sie unsere Domänenobjekte, die zwei Arten von Objekten im Speicher speichern können, auch wenn nur einige Metadaten im Formular angezeigt werden. Es dauert ein paar Sekunden, um dieses Formular zu erstellen, und (aber) können wir wieder Hunderte von (Daten) akzeptieren. Nach einigen Analysen haben wir unsere Erkenntnis verbessert, und es sieht so aus:
Öffentliche Klasse DomainObject {private dataparser parser; = Apparser;} public String getheaderfield (String -Name) {// Hier analysieren und leichter die Header -Karte (Header.isempl ()) {Header.addall (parser.header ());} return Header.get (Name)) ;} Public iterable <daten> getMeasurementValues () {// erneut faule Lade und analysieren Sie die Daten if (data.Isempty ()) {data.addall (parser.measurements ());} returndaten;}}
Diese Verbesserung verbessert den Eintritt in die Anzeigezeit und verbessert unsere (Fähigkeiten) unserer Verarbeitung von Big -Data -Elementen erheblich. Alle Datenlast treten nur auf, wenn jemand die Messung der Messung anzeigen und einen bestimmten Element verdoppeln möchte.
Eine Art Java wird verzögert, nachdem die Box abgebaut wurde.
// faul und schnell, weil die Ausgabenoperation nur bei Bedarf ausgeführt wird (acondition () && teurerOperation ()) {...} // Slow order (immer noch faul!) Wenn (teureOperation () && acondition ()) {. ..}
Das langletzte Schicht -Framework wie Hibernate ist häufig standardmäßig, um das Laden zu verzögern, da der Datenbankzugriff und der Datenübertragungspreis unter normalen Umständen recht hoch sind.
Die meisten Sprachfunktionen basieren auf der Zuweisung von Surround -Verzögerungen. Scala mischt Objekt -orientierte Sprachfunktionen und führt verspätete Schlüsselwörter ein, um den Java -Stil zu vereinfachen.
Öffentliche Klasse Dom ArinObject (Parser: Dataparser) {// bewertet auf First Access Private Lazy Val Header = {Parser.Header ()} Def Getheadereld (Name: String): S tring = {Header.get (Name) .Getorelse (" ")} // Evaluiert bei First Access Lazy Val Mesurementvalues: iterable [data] = {parser.measurements ()}}}
abschließend
Die Verzögerung des Ladens ist keine neue revolutionäre Technologie, aber es ist ein sehr nützliches Instrument, wenn es um Big Data oder die Verlangsamung von Ressourcen geht. In vielen Fällen können Sie es verwenden, um die Leistung zu verbessern oder sie selbst zu verwenden.
Es kann die Kosten für die Implementierung von Code senken.