2010-07-13 7 views
1

Voici ce que je fais actuellement.Générer JSON - comment améliorer les performances

  1. Obtenir les données de base de données dans DataTable (enregistrements max seraient 100 mais procédure stockée rechercheront contre plus de 500.000 dossiers. Je l'ai déjà pris en charge l'optimisation de la recherche dans la base de données. Je cherche comment je peux améliorer les performances autant comme je peux à l'étape # 2 et l'étape # 3 ci-dessous.)
  2. Créer une liste générique (Liste)
  3. Utilisez cette liste et passez-la à JavaScriptSerializer pour récupérer JSON.

Il existe plusieurs options pour générer JSON comme DataContractJsonSerializer ou JSON.NET ou WCF. Je voulais savoir quelles options donnent de meilleures performances? Ou de toute autre façon, je peux améliorer la performance?

+0

Désolé, mais il me semble que la recherche de 100 enregistrements maximum à partir de 500 000 enregistrements prend beaucoup plus de temps que la sérialisation de 100 enregistrements. Vous devriez donc investir davantage dans l'optimisation de la procédure stockée au lieu de la sérialisation JSON. – Oleg

+0

J'ai pris soin de cette optimisation proc stockée. J'ai également besoin d'améliorer les performances du côté de l'application. Je voulais donc m'assurer que j'utilise la bonne approche qui me donne les meilleures performances car il y a tellement d'autres façons de générer du JSON. – shailesh

Répondre

2

Voici quelques résultats de perf de l'auteur de JSON.Net: http://james.newtonking.com/archive/2010/01/01/net-serialization-performance-comparison.aspx. La conclusion serait JSON.Net, si vous souhaitez utiliser une bibliothèque tierce.

+0

Merci Frank. Une chose que je ne comprends pas où cette désérialisation vient en image. J'utilise juste la classe JavaScriptSerializer pour sérialiser des objets. – shailesh

+0

Eh bien, les résultats de perf couvrent la sérialisation et la désérialisation. Si vous vous souciez uniquement de la sérialisation, cela devrait suffire. Cela impliquerait qu'un autre composant fait de la désérialisation, je ne pourrais pas vous dire où cela se trouve sans en savoir plus sur l'application sur laquelle vous travaillez. –

+0

Je suis également d'accord avec certains des autres commentaires que ce n'est probablement pas votre goulot d'étranglement de performance ... Mais JSON.Net est une bonne bibliothèque à utiliser de toute façon. –

Questions connexes