89 votes

Qu'est-ce que le chargement paresseux ?

Qu'est-ce que le chargement paresseux ?

[Modifier après avoir lu quelques réponses] Pourquoi les gens utilisent-ils si souvent ce terme ?

Supposons que vous utilisiez simplement un recordset ASP/ADO et que vous le chargiez avec des données ou une source de données ADO.NET pour un gridview.

Je suppose que j'aurais dû demander pourquoi les gens utilisent le terme "Lazy Loading", quels "autres" types existent ?

220voto

Mike Stone Points 21293

On parle de chargement paresseux parce que, comme une personne paresseuse, vous remettez à plus tard ce que vous ne voulez pas faire. À l'opposé, on appelle cela le chargement enthousiaste, qui consiste à charger quelque chose tout de suite, bien avant d'en avoir besoin.

Si vous êtes curieux de savoir pourquoi les gens utilisent le chargement paresseux, pensez à une application qui prend BEAUCOUP de temps pour démarrer. Cette application fait probablement beaucoup de chargement rapide... charger des choses depuis le disque, et faire des calculs et autres bien avant d'en avoir besoin.

Si l'on compare cela au chargement paresseux, l'application démarre beaucoup plus rapidement, mais la première fois que vous devez faire quelque chose qui nécessite un chargement long, il peut y avoir une légère pause pendant le premier chargement. Ainsi, avec le chargement paresseux, vous amortissez le temps de chargement tout au long de l'exécution de votre application... et vous pouvez même éviter de charger des éléments que l'utilisateur n'a peut-être jamais l'intention d'utiliser.

40voto

Javache Points 1572

Le chargement paresseux est une pratique de programmation dans laquelle vous ne chargez ou n'initialisez un objet que lorsque vous en avez besoin pour la première fois. Cela peut vous permettre d'améliorer considérablement les performances, surtout si votre application comporte de nombreux composants.

Comme d'habitude, Wikipedia a plus de détails.

14voto

Shivprasad Koirala Points 1327

Le chargement paresseux est un concept dans lequel nous retardons le chargement de l'objet jusqu'au moment où nous en avons besoin. En d'autres termes, il s'agit de charger les objets à la demande plutôt que de les charger inutilement. Par exemple, si vous avez une classe "Client" qui a des objets "Commandes" agrégés. Vous souhaitez donc charger les données du client, mais vous souhaitez retarder le chargement des objets de commande jusqu'à ce que votre application en ait besoin.

Vous trouverez ci-dessous une vidéo youtube qui montre comment utiliser le chargement paresseux, comment le mettre en œuvre et quels en sont les avantages et les inconvénients.

http://www.youtube.com/watch?v=2SrfdAkwmFo

9voto

Kevin Goff Points 725

Définition de wikipedia Le chargement paresseux est un modèle de conception couramment utilisé en programmation informatique pour différer l'initialisation d'un objet jusqu'au moment où il est nécessaire. ...

http://en.wikipedia.org/wiki/Lazy%20loading

7voto

Mendelt Points 21583

Le terme "lazy loading" est généralement utilisé lorsqu'on parle de mappeurs relationnels objet. Si vous utilisez ADO.NET directement, vous obtenez toujours un chargement rapide (c'est-à-dire qu'il charge toujours ce que vous spécifiez).

Les mappages OR comme nHibernate permettent de renvoyer des objets proxy qui sont "remplis" avec les bonnes données uniquement lorsque vous accédez aux données. Ainsi, vous ne chargez que les données que vous utilisez réellement. C'est une fonctionnalité utile lorsque vous spécifiez un grand nombre de relations entre les objets qui peuvent être chargés à partir de la base de données, vous ne voulez pas que le mappeur OR charge tous les objets liés et les objets liés aux objets liés et ainsi de suite. Cela peut entraîner le chargement de l'ensemble de votre base de données.

Ce problème peut être évité en concevant soigneusement votre modèle d'objet. (L'utilisation d'agrégats et le chargement uniquement des racines d'agrégats comme dans la conception pilotée par le domaine est un moyen de contourner ce problème sans utiliser le chargement paresseux).

Le chargement paresseux peut amener le mappeur ou à effectuer de nombreux petits accès à la base de données au lieu de récupérer toutes les données dont vous avez besoin en une seule fois. Cela peut également entraîner des problèmes de performances.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X