2010-04-08 14 views
2

QUESTION:Dois-je déplacer grand blobs de données en JSON ou en relation binaire séparée?

Vaut-il mieux envoyer de gros blobs de données dans JSON pour plus de simplicité, ou les envoyer en tant que données binaires sur une connexion séparée?

Si l'ancien, peut vous offrir des conseils sur la façon d'optimiser le JSON pour minimiser la taille? Dans ce dernier cas, cela vaut-il la peine de connecter logiquement les données JSON aux données binaires en utilisant un identifiant qui apparaît dans les deux, par exemple "data": "< identifiant unique>" dans le JSON et avec le premier octets de la donnée blob étant < identificateur unique>?

CONTEXTE:

application iPhone My doit recevoir des données JSON sur le réseau 3G. Cela signifie que je dois réfléchir sérieusement à l'efficacité du transfert de données, ainsi que la charge sur le processeur.

La plupart des transferts de données sont des paquets de données relativement faibles de texte pour lequel JSON est un format naturel et pour lequel il est inutile de se soucier beaucoup sur l'efficacité. Cependant, certains des transferts les plus critiques seront de grosses tâches de données binaires - certainement au moins 100 kilooctets de données, et peut-être plus proches de 1 mégaoctet, car les clients accumulent un historique plus long avec le produit. (Note: Je vais la mise en cache ce que je peux sur l'iPhone lui-même, mais les données restent encore à transférer au moins une fois.) Il est pas de données en streaming.

Je vais probablement utiliser un tiers JSON SDK - celui que je me sers au cours du développement est here.

Merci

Répondre

1

Vous pouvez essayer de compresser le JSON (gz peut-être) avant de l'envoyer et puis décompressez-le du côté client.

Mais je ne sais pas comment cela affecte la performance iPhone.

+0

C'est certainement une possibilité. Cela dépend si le goulot d'étranglement est finalement le transfert réseau ou le décodage sur le téléphone. – Amagrammer

+0

Ma première estimation pour le goulot d'étranglement serait la décompression. Tant que vous ne le faites pas trop souvent, cela ne devrait pas être trop mauvais. –