В двух словах ...
Это, вероятно, плохая идея,
в частности с / для мобильных устройств, где, помимо задержки, связанной с переводом (-ами), лимиты и / или дополнительные сборы, связанные с ежемесячными объемами, превышающими лимиты различных планов, делают этот паршивый экономичный вариант ...
A грубо оценка (более подробная информация ниже) заключается в том, что передача в одну сторону занимает от 0,7 до 5 секунд .
Эта оценка сильно варьируется, в основном из-за двух факторов
- Сетевые технологии и план
- Степень сжатия, которую можно получить для целых чисел 200 КБ.
Поскольку характеристики сети более или менее являются заданными, наиболее значительное улучшение будет достигнуто за счет степени сжатия . Это, в свою очередь, сильно зависит от статистического распределения 200 000 целых чисел. Например, если большинство из них меньше, чем, скажем, 65 000, вполне вероятно, что список будет сжат примерно до 25% от его первоначального размера (уменьшение размера на 75%). Представленные временные оценки предполагали только уменьшение размера на 25-50%.
Еще одним соображением, связанным с сетью, является наличие бинарного расширения MIME (8-битного MIME), которое, например, позволило бы избежать накладных расходов B64 на 33%.
Другие соображения / идея :
- Этот тип использования сети для планов iPhone / мобильных устройств будет работать не очень хорошо!
ATT будет любить вас (возможно), ваши конечные пользователи будут ненавидеть вас, по крайней мере, тех, у кого есть ограничения по плану, которые есть у многих (у большинства?)
- Вместо того, чтобы отправлять один большой список, вы можете разделить список на 3 или 4 блока, что позволит выполнять сортировку на стороне сервера [в основном] параллельно с передачей данных.
- Можно получить лучшую степень сжатия для целых чисел, когда они [грубо] отсортированы, может быть, у вас может быть сортировка первого прохода какой-нибудь клиентской стороны.
Как мне понять? ...
1) Amount of data to transfer (one-way)
200,000 integers
= 800,000 bytes (assumes 4 bytes integers)
= 400,000 to 600,000 bytes compressed (you'll want to compress!)
= 533,000 to 800,000 bytes in B64 format for MIME encoding
2) Time to upload (varies greatly...)
Low-end home setup (ADSL) = 3 to 5 seconds
broadband (eg DOCSIS) = 0.7 to 1 second
iPhone = 0.7 to 5 seconds possibly worse;
possibly a bit better with high-end plan
3) Time to download (back from server, once list is sorted)
Assume same or slightly less than upload time.
With portable devices, the differential is more notable.
The question is unclear of what would have to be done with the resulting
(sorted) array; so I didn't worry to much about the "return trip".
==> Multiply by 2 (or 1.8) for a safe estimate of a round trip, or inquire
about specific network/technlogy.