gpt4 book ai didi

php - 在不使用序列化的情况下在 PHP 中缓存对象

转载 作者:可可西里 更新时间:2023-10-31 22:41:28 24 4
gpt4 key购买 nike

我有一个在 PHP 脚本中创建的复杂对象。我正在寻找一种方法来存储此对象,以便后续请求不必重新创建它,或花时间反序列化和重建它。使用 xdebug 我发现我花费了整个请求时间的一半来构建这个对象。即使当我将对象显式存储在 APC(或内存缓存)中时,反序列化它和加载所有类的时间几乎与首先创建对象一样长。

我不知道是否可以在 PHP 中存储并稍后加载“已编译”对象。这可能吗?还有其他解决方案吗?

我不确定这是否可行,但我想我应该问问社区。

编辑:该对象是一棵二叉树,用作决策树。该代码基本上是一个 API,需要从树中快速返回答案。这一切都需要以不断增加的速度执行,所以我试图尽可能地最大化性能。

最佳答案

据我所知,不序列化就不可能在 PHP 中缓存对象。然而,一般来说,缓存机制(APC、Memcache 等)实际上是在尝试删除数据库连接而不是提高性能(从而降低整体数据库压力)。这就是 绝对 memcache 等在 Drupal 中的应用方式。换句话说,缓存机制应该允许您扩展,尽管它们可能不会特别提高性能。
实现缓存机制应该可以让您更轻松地向外扩展,即使对于单个连接,每台机器的性能并不比以前好。在某个阈值下,数据库性能会急剧下降,缓存机制应该有助于缓解这个问题。

关于php - 在不使用序列化的情况下在 PHP 中缓存对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190662/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com