2010-03-05 4 views
1

Quelle différence y aura-t-il si je lie des données à une grille par rapport à une boucle à travers les données et construisons le code HTML?Différence de performance entre la liaison de données gridview et la mise en boucle dans ASP.NET

Je suis actuellement en utilisant une table html dans le ItemTemplate d'un gridview et ai <%#Eval("ID")%> dans ce tableau pour lier les données de IQueryable

si je boucle à travers le IQueryable et aménageons html à partir du code derrière la place. Quelle est la différence de performance si quelqu'un a fait cette comparaison ou a une bonne connaissance de ce qui devrait être la voie à suivre?

Merci.

J'utilise Asp.net/C#

+0

En C#? Java? C++? En utilisant quel cadre? – tpdi

+0

@tpdi, l'OP aurait dû spécifier, mais c'est ASP.NET comme le montre l'extrait de '<% # Eval (" ID ")%>' dans son article. –

Répondre

1

D'une manière générale l'avantage de performance d'éviter des contrôles complexes et la liaison est non mesurable au niveau de la page individuelle, et donc sans conséquence. Le temps de développement économisé en utilisant les contrôles existants et les API plus simples, comme la liaison de données, l'emportent largement sur le faible impact sur les performances.

Dans notre application principale, nous utilisons des contrôles complexes et la liaison de données dans toute la page ASP.NET. La partie de liaison de données du cycle de vie de la page complète est inférieure à 2% du temps pour traiter toute la page. C'est beaucoup moins que les E/S pour la page et en particulier les appels DB.

Une exception est dans les rapports. Le moteur de génération de rapports que nous utilisons prend en charge la définition directe des données dans une boucle ou l'utilisation de la liaison de données. La liaison de données est beaucoup plus facile. Cependant, avec certains rapports atteignant plus de 200 pages avec plus de 300 000 éléments de données liés, l'impact sur la performance de la liaison de données était perceptible dans ce cas. Dans nos rapports, nous n'utilisons pas de liaison de données.

+0

@Sam - vous pourriez bien l'avoir sauvé d'un mauvais cas d'optimisation prématurée! (Battez-moi à la réponse aussi) +1! –

Questions connexes