我正在开发一个项目,它使用PHP创建一个“复杂”对象,其中包含对其他对象的大量引用,链接回其父对象等等.
对象结构随后由Zend 模块序列化,并发送到flex应用程序。
问题是序列化需要很长时间(+10秒)。
因此,我的问题是:有人能告诉我序列化是如何工作的吗?为了使序列化运行得更快,我可以以什么方式优化对象结构?
发布于 2010-11-29 16:54:13
切换到JSON将在很大程度上帮助这一点,因为它允许更容易的缓存。
APC也将帮助,仅仅是操作码缓存部分,而不是存储在内存中的对象.
这个物体到底有多大?不把所有的东西都送出去值得吗?如果您只是处理记录集,您可能只需要下载用户可以看到或在不久的将来会看到的内容,就可以在前端修复它。
发布于 2010-11-29 15:21:35
默认的序列化程序将遍历每个属性,如果属性是一个对象,那么它将遍历每个对象及其属性,直到完成为止。
由于您的对象是复杂的,有许多正在运行的对象和许多级别的对象正在被序列化。
作为优化点,您可能希望在对象上实现可序列化的接口,并将序列化所需的最少数量的信息序列化并通过线路发送到Flex应用程序。
http://php.net/manual/en/class.serializable.php
发布于 2010-11-29 19:34:23
在执行AMF序列化或其他序列化时,如果要考虑性能问题,通常最好使用较小的数据块。通过这样做,您可以使用单个对象作为真正的ActionScript对象,而不仅仅是数据占位符。当执行任何类型的RPC时,较小的数据通常更好。您可以使用JSON来代替,但是这样就会松掉使用AMF所获得的紧密数据绑定。因此,尝试使用多个HTTP请求处理较小的数据包。
https://stackoverflow.com/questions/4303907
复制相似问题