Lorsque vous utilisez plusieurs objets ou structures de mégadonnées, un moyen d'améliorer ses performances est d'utiliser le chargement ou l'attribution de retard (à implémenter). Les opérations de temps à temps ont été raccourcies le plus possible que possible, jamais réalisées. J'utilise quelques exemples pour expliquer comment la technologie de chargement retardée est utilisée dans Java, et donne quelques directives qui peuvent être plus faciles (utilisées) et dans le cadre de la langue centrale dans d'autres langues.
Un scénario d'utilisation consiste à montrer des centaines de métadonnées et des objets de mesure dignes d'objets de domaine via JTable. Initialisez nos objets de domaine qui peuvent enregistrer deux types d'objets en mémoire, même si seules certaines métadonnées sont affichées dans le formulaire. Il faut quelques secondes pour construire ce formulaire, et (mais) nous pouvons accepter à nouveau des centaines de (données). Après avoir fait une analyse, nous avons amélioré notre réalisation, et cela ressemble à ceci:
Classe publique DomainObject {Private Final Dataparser Parser; Map final privé <String, String> = Aparser;} public String getheaderField (name de chaîne) {// ici nous analysons parsemé et déposons la carte d'en-tête (en-tête.isempl ()) {header.addall (parser.header ());} return header.get (name) ;} Public Iteable <NATA> GetMeasurementValues () {// Again encore paresseux-chargement et analyser les données if (data.isempty ()) {data.addall (parser.measurments ());} return data;}}
Cette amélioration améliore l'entrée du temps d'affichage et améliore considérablement nos (capacités) de notre traitement des mégadonnées. Toute la charge de données ne se produit que lorsque quelqu'un souhaite afficher la mesure de la mesure et le double cliquez un certain élément.
Une sorte de java sera retardée après le démonstration de la boîte.
// paresseux et rapide parce que l'opération de dépense ne s'exécutera que lorsque vous avez besoin (acondition () && cherOperation ()) {...} // Ordre lent (toujours paresseux Ed!) If (cherOperation () && acondition ()) {. ..}
Le cadre de couche long-lastage comme Hibernate est souvent par défaut pour retarder le chargement car l'accès à la base de données et le prix de transmission des données sont assez élevés dans des circonstances normales.
La plupart des fonctions linguistiques sont basées sur l'attribution des retards surround. Scala mélange les fonctions de langage orientées objet et introduit des mots clés retardés pour simplifier le style Java.
Classe publique Dom ArinObject (Parser: DataParser) {// évalué sur le premier accès privé Lazy Val Header = {Parser.Header ()} def getheRerel (name: String): s tring = {header.get (name) .getorelSe (" ")} // Évalué sur le premier accès Lazy Val MesurementValues: iterable [data] = {parser.measurments ()}}}
en conclusion
Retarder le chargement n'est pas une nouvelle technologie révolutionnaire, mais c'est un outil très utile pour traiter les mégadonnées ou le ralentissement des ressources. Dans de nombreux cas, vous pouvez l'utiliser pour améliorer les performances ou l'utiliser vous-même.
Il peut réduire le coût de la mise en œuvre du code.