Мы планируем проект. В основном у нас есть множество спокойных сервисов, сидящих на нашем сервере. Эти восстановленные службы возвратят XML как тип данных.
Мы будем создавать приложения на различных мобильных платформах, таких как Adroid/iOS/возможные другие. Приложение, возможно, потребуется часто звонить этим успокоительным службам.
Поскольку мы находимся на стадии планирования, мне интересно, знает ли кто-нибудь о производительности в отношении разных мобильных платформ. Например, на мобильных платформах мы предполагаем, что необходимо очень быстро возвращать данные. Мы можем сжимать данные по-разному для конкретной мобильной платформы. Или любые другие возможные различия, которые мы должны обратить внимание на эти мобильные платформы, когда они потребляют спокойную услугу?
Использовать формат данных JSON.
Он быстрее генерируется на вашем сервере, быстрее передается по сети и быстрее анализирует и потребляет на устройстве.
Худшая проблема заключается в самой полезной нагрузке: XML слишком раздутый. Каждому непустому тегу требуется 2 * N + 5 символов. Это боль и для синтаксического анализа, и для передачи. Гораздо лучше - полезная нагрузка JSON. Если вы не можете изменить производителей, создайте фасад для преобразования.
Я бы не стал слишком беспокоиться об этом раньше времени. Просто постарайтесь сохранить свою структуру данных достаточно эффективной, и если вы столкнетесь с измеримыми проблемами, тогда вы можете оптимизировать в это время. Общая производительность должна быть одинаковой на разных платформах.
Смотрите эту статью в Android о конструировании для производительности. Это дает хороший обзор.
При создании такой системы легко понять, как максимизировать работу, выполняемую на сервере, чтобы минимизировать объем работы, которая должна выполняться на каждом клиентском устройстве. Это не обязательно правильный путь.
В целом, смартфоны более мощные, чем программисты, как правило, придают им честь, и - как ПК, которые проводят большую часть своего времени, просто сидят там - их вычислительная мощность может быть недоиспользуемой. До тех пор, пока вы кодируете в основном здравомыслящий подход, смартфоны могут быстро анализировать большие объемы XML (в зависимости от вашей идеи "большой", конечно, например, из личного опыта я знаю, что дрянной 3-летний Blackberry может проанализируйте XML-документ размером 5 МБ всего за несколько секунд, но вы можете подумать, что 5 МБ невелики).
Если вы заходите слишком далеко по пути выполнения дополнительной работы на сервере, чтобы уменьшить рабочую нагрузку на устройстве, возможно, вы в конечном итоге перегрузите свой сервер, в то же время недоиспользуя мощь устройств. Имеет смысл сжать данные, возвращаемые из ваших веб-сервисов, чтобы уменьшить общий размер передаваемых данных, но тогда это предполагает, что не следует использовать XML в первую очередь.