Zend AMF Оптимизация;Секреты и уловки? - PullRequest
3 голосов
/ 29 ноября 2010

Я работаю над проектом, который использует PHP для создания объекта ' complex ' с множеством ссылок на другие объекты, ссылающихся на их родительские объекты и т. Д. *

ОбъектЗатем структура сериализуется модулем Zend AMF и отправляется в приложение flex.

Проблема заключается в том, что сериализация занимает много времени (+ 10 сек).

У меня такой вопрос: может ли кто-нибудь дать мне советы о том, как работает сериализация и каким образом я могу оптимизировать структуру объекта, чтобы ускорить сериализацию?

Ответы [ 3 ]

1 голос
/ 29 ноября 2010

Переключение на JSON очень поможет в этом, поскольку оно упрощает кэширование.

APC также поможет, только для части кэш-кода операции, а не для хранения объектов в памяти.

Насколько велик этот объект? Может ли это стоить того, чтобы не посылать все это? Если вы имеете дело только с наборами записей, вы можете исправить это во внешнем интерфейсе, загрузив только то, что пользователь может видеть или увидит в ближайшем будущем.

0 голосов
/ 29 ноября 2010

При выполнении сериализации AMF или любой другой сериализации обычно лучше работать с небольшими порциями данных, если производительность является проблемой.Делая это, вы можете работать с отдельными объектами как настоящие объекты ActionScript, а не просто как заполнители данных.Меньшие данные при выполнении любого типа RPC обычно лучше.Вы могли бы использовать вместо этого JSON, но тогда вы потеряете жесткую привязку данных, которую вы получаете от использования AMF.Поэтому попробуйте работать с небольшими пакетами данных, используя несколько HTTP-запросов.

0 голосов
/ 29 ноября 2010

Сериализатор по умолчанию будет перебирать каждое свойство, если свойство является объектом, то он будет перебирать каждый из этих объектов и их свойства до тех пор, пока это не будет сделано.

Поскольку ваш объект сложный, существует множество проблеми многие уровни объектов, которые сериализуются.

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

http://php.net/manual/en/class.serializable.php

...