В тестах, которые мы сделали, мы нашли огромное преимущество, однако имейте в виду последствия CPU.
В одном проекте, над которым я работал, мы отправляли на большое количество данных XML (> 10 мегабайт) клиентам, работающим с .NET. (Я не рекомендую это как способ сделать что-то, это только та ситуация, в которой мы оказались!) Мы обнаружили, что по мере того, как XML-файлы получили достаточно большие библиотеки Microsoft XML не смогли разобрать файлы XML (машины закончились памяти, даже на машинах> 1 гигабайт). В конечном итоге менялось изменение библиотек синтаксического анализа XML, но до этого мы включили сжатие GZIP на переданные нами данные, которые помогли нам разобрать большие документы. На наших двух серверах websphere, основанных на Linux, мы смогли сгенерировать XML, а затем gzip довольно легко. Я думаю, что с 50 пользователями, делающими это одновременно (загрузка примерно от 10 до 20 из этих файлов), мы смогли сделать это нормально, причем около 50% CPU.Сжатие XML, казалось, было лучше обработано (например, парсинг/cpu time) на серверах, чем на .net gui, но это, вероятно, было связано с вышеупомянутыми недостатками используемых библиотек Microsoft XML. Как я уже упоминал, есть более доступные библиотеки, которые быстрее и используют меньше памяти.
В нашем случае мы также получили значительные улучшения в размере - мы сжимали файлы размером 50 мегабайт в некоторых случаях до примерно 10 мегабайт. Это, очевидно, помогло повысить производительность сети.
Поскольку мы были обеспокоены воздействием и имели ли это другие последствия (наши пользователи, казалось, делали что-то в больших волнах, поэтому мы были обеспокоены тем, что у нас закончилось CPU), у нас была переменная конфигурации, которую мы могли бы используйте для включения/выключения gzip. Я бы рекомендовал вам это сделать.
Другое дело: мы также закрепили файлы XML до их сохранения в базах данных, и это сэкономило около 50% пространства (файлы XML варьировались от нескольких К до нескольких мегабайт, но в основном довольно небольшие). Вероятно, легче сделать все, чем выбрать определенный уровень, чтобы отличать, когда использовать сжатие или нет.
, но нет накладных расходов путем застежки-молнии и распаковки ?? – leora 2008-10-25 14:44:52