AMF только для Flash?

Я новичок в AMF, и я узнал, что AMF якобы очень быстрый.

Мне было интересно, следует ли мне использовать его для всех моих веб-сервисов. Это все еще быстро без флэш-VM?


amf
person Alex L    schedule 17.09.2009    source источник


Ответы (3)


Этот вопрос может иметь два ответа. Один ответ касается AMF как протокола, другой ответ касается реализации.

Как протокол, AMF выдает небольшие выходные данные, в которых удалена большая часть избыточности. По сравнению с аналогичной реализацией SOAP, AMF будет использовать меньше байтов сетевого трафика. В некоторых приложениях это можно рассматривать как «быстрее».

AMF также может быть быстрым, если реализация, которая кодирует AMF, является быстрой. Виртуальная машина Actionscript может кодировать его довольно быстро. Однако вы заявляете, что не будете использовать виртуальную машину Flash. В этом случае вы можете подумать об использовании Python. Для Python есть два варианта с открытым исходным кодом: PyAmf и AmFast. Сообщается, что AmFast в восемнадцать (18) раз быстрее, чем PyAmf для целей кодирования.

Итак, окончательный ответ таков: определите, какой «быстрый» вы хотите, сравните возможности кодировщиков, из которых вы можете выбрать.

person Heath Hunnicutt    schedule 12.10.2009
comment
Команды AMF через сокет, например, будут во много раз эффективнее (в вычислительном отношении), чем HTTP. Это происходит не из-за компактного размера, а из-за предсказуемости размера компонентов и сегментации, которые в противном случае пришлось бы оценивать лексически. - person bond; 26.05.2014

AMF был специально разработан для ActionScript, но это всего лишь двоичный формат, основанный на SOAP. Вы можете использовать его где угодно, но и клиент, и сервер должны понимать AMF.

Существует множество библиотек для множества различных серверных языков для понимания AMF, но я я не слишком уверен, где еще вы хотели бы использовать AMF на стороне клиента, кроме Flash.

person Adam Harte    schedule 17.09.2009

AMF быстр в том смысле, что по сравнению с другими форматами, которые вы могли бы использовать, он:

  • меньше, поэтому для передачи ответов по сети требуется меньше времени, чем в больших форматах (что влияет на вас независимо от того, с чем вы используете AMF), и
  • ближе к собственному формату клиента, поэтому клиенту требуется меньше работы по синтаксическому анализу (что в основном является преимуществом Flash Player, хотя он все же, вероятно, ближе к собственной форме любого клиента, чем, например, XML).

Хорошее сравнение производительности AMF с другими протоколами/форматами, используемыми с Flex, можно найти по адресу: http://www.jamesward.com/census2/, но я не видел сравнения производительности любого другого клиента AMF (даже собственный декодер чистого JavaScript AMF Джеймса Уорда).

person rakslice    schedule 18.05.2011