Поскольку вы парень из Java, вы можете сразу отказаться от опции PHP: ее параметры удаленного взаимодействия AMF работают медленнее, чем у других 3, и вы не хотите изучать новый язык.
Это оставляет нам Java, CF и BlazeDS, которые в основном являются разновидностями Java и с точки зрения производительности они могут быть довольно похожими (при правильном использовании: см. Далее):
- Java: самый базовый вариант; Я считаю, что это самый быстрый вариант для удаленного взаимодействия AMF; плюс вы знаете язык
- BlazeDS: на самом деле это серверное приложение Java, которое позволяет отправлять сообщения клиенту; так что вы также можете писать на Java; но если вам не требуется дополнительная функциональность, не беспокойтесь
- ColdFusion: «уровень продуктивности» поверх Java: нравится ли вам язык, решать вам (лично я не большой поклонник). Вам нужно будет настроить сервер ColdFusion. Хотя версия CF-сервера для разработчиков является бесплатной, коммерческая версия очень дорога (если вы не используете Railo или BlueDragon).
Но есть одна вещь, которую вам нужно знать. Инстанцирование в CF ужасно дорого - я имею в виду в 500 раз медленнее, чем в Java - поэтому, если у вас большие списки, это определенно ноно. Если вы не используете трюк, с которым я столкнулся несколько месяцев назад: вместо создания объекта вы должны создать «struct» и присвоить ему атрибут «__type__».
пример, вместо:
var instance = new path.to.MyClass();
//or
var instance = createObject("component", "path.to.MyClass");
сделать это так:
var instance = structNew();
instance["__type__"] = "path.to.MyClass";
и ColdFusion будет таким же быстрым или, может быть, даже немного быстрее, чем Java.
У меня есть несколько ориентиров, подтверждающих это. Это изображение представляет собой сравнение того, сколько времени требуется для создания 50000 экземпляров на некоторых языках. (На самом деле я пытался сказать своему боссу, насколько дерьмовой CF на самом деле.) И CF8 (не в таблице) даже в 100 раз медленнее.
Затем я добавил сериализацию AMF и типизированную структуру (как описано ранее) в список, и вот результат:
Некоторые имена столбцов были потеряны в графике, но второй столбец слева - это опция чисто Java. Таким образом, при таком подходе CF9, кажется, на самом деле быстрее, чем Java.