2009-09-17 1 views
3

Я новичок в AMF, и я узнал, что AMF предположительно очень быстро.Является ли AMF только для Flash?

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

ответ

3

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

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

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

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

+1

Команды AMF над сокетом, например, будут во много раз более эффективными (вычислительно), чем HTTP. Это не компактный размер, а предсказуемость размера и сегментации компонента, которые в противном случае должны были бы оцениваться лексически. – bond

2

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

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

+4

Основано на SOAP?!? –

1

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

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

Там хорошее сравнение производительности AMF против других протоколов/форматов, используемых с Flex по адресу: http://www.jamesward.com/census2/, но я не видел сравнение, которое охватывает производительность любого другого АИФ клиента (даже James Ward's own pure JavaScript AMF decoder).