AMFPHP vs Zend_Amf benchmark
Провёл праздники в жёстком дебаге:)
В том числе мимоходом потестировал сравнительную скорость Flex+AMFPHP и Flex+Zend_Amf.
Суть бенчмарка - последовательный вызов методов RemoteObject, с передачей параметров разного типа (integer, object, array, date etc) и последовательный вызов методов, возвращающих разные типы. На самом деле тест делался для других целей, но визульно сравнить скорость работы серверной стороны тоже стало интересно.
Тест относительный - то есть понятно, что в разных конфигурациях серверной машины, скорость ответа сервиса будет различна, но отношение результатов бенчмарков между собой - примерно одинаковым.
1. Результаты AMFPHP. При дёргании сервера - инициализируется AMFPHP, Zend_Loader, Zend_Db и прочие-некторые классы. В общем - bootstrap.

Приблизительно 3.5 секунды на все вызовы сервиса. Ещё непонятно - много это или мало.
2. Результаты Zend_Amf, включённого по “классической” схеме. При дёргании сервера - всё то же, что в предыдущем случае, только вместо AMFPHP - Zend_Amf.

Приблизительно 4.2 секунды. Медленнее, чем AMFPHP, приблизительно на 15%.
3. Результаты Zend_Amf, включённого по схеме, предложенной здесь. По моему разумению, это было бы замечательно - поддерживается хорошая архитектура приложения, где AMF gateway просто ещё один Action Controller. Инициализируются Zend MVC, Front Controller, в общем по обычной схеме приложения ZF.

Приблизительно 7.2 секунды. Никуда не годится!
Выводы такие сделал -
1. ZF - тормозная хрень (однако, справедивости ради - очень гибкая), выбирать скорость разработки или скорость приложения нужно осторожно.
2. AMFPHP, и Zend_Amf - приблизительно равны по скорости, и, думаю, приблизились к своему пределу. Я имею ввиду, что принципиальных отличий в работе с AMF между этими библиотеками нет, а есть отличия архитектурные. И отличия эти, как ни жаль, в пользу AMFPHP. А жаль потому, что библиотеку никто не поддерживает. Но тут, опять же, есть надежда, что Zend_Amf будут развивать. AMFPHP опять-таки побыстрее будет, палюбому.
3. Использовать Zend_Amf в “классической” схеме ZF action controllers - не стОит, стОит ли вообще - решать вам.
Клиентская часть теста в работе.
Исходник клиентской части.
Исходник тестового сервиса.
Версии, использовавшиеся для бенчмарков - AMFPHP 1.9, Zend Framework 1.7.5

February 24, 2009 в 11:23
А как на счет запуска ZF под Zend Opimizer?
February 24, 2009 в 22:34
Да, вот совсем забыл написать. При тестах Zend Optimizer v3.3.3 was enabled.
Но, по сути, я не думаю, что это как-то влияет на относительный результат, потому что он оптимизирует и AMFPHP тоже.