php - 是否可以在服务器端(PHP、Symfony)的 HTTP 请求之间共享对象?
问题描述
我想提高 Web 服务的性能,它需要创建一个无状态但非常大(就内存而言)的对象。这需要相当长的时间 - 0.3s。用加载序列化对象替换构造函数将时间缩短到 0.1 秒。有没有办法将这样的对象保存在 http 服务器内存(PHP,Symfony 4)中并在不同的 http 请求中使用它?
解决方案
首先:这通常使用 Redis 或 Memcache 之类的键值存储来完成。但这并没有消除反序列化所需的时间,这可能是这里的瓶颈。
这取决于你的设置是什么。通常的“Web 服务器响应请求并通过 mod_php、CGI 或 FPM 启动 PHP”不能做到这一点。HTTP 是无状态的,PHP 进程相互隔离。如果您使用类似ReactPHP的 PHP 直接启动您自己的服务器,您可以共享内存,因为您的应用程序将始终“启动”,非常类似于 Java 服务器进程。但这会改变整个编程范式,因为突然之间您将不得不处理内存泄漏、多线程等问题。
推荐阅读
- sql - 多个查询的结果在 Oracle 中作为一个结果
- reactjs - Typescript Type 或 Lint 以防止意外地将实际函数渲染到 JSX 中,而不是执行的返回值
- python-3.x - Keras (Sequential) - Multi Input (Numerical + n Embeddings) 中的 model.summarize() 可以工作吗?
- node.js - 如何呈现已使用 facebook 登录的用户名?
- reactjs - 无法使 React Router Dom Link 工作
- java - 当我在 NetBeans 中按“新项目”时,我在类别中找不到 Java
- excel - 如何在 ErrorHandler 之后返回上一行?
- php - 无法在 wordpress 页面中加载 iframe
- javafx - 单击按钮时在边框窗格中心内设置 Vbox 时出错
- python - 如何将变量从本地烧瓶应用程序传递到远程烧瓶应用程序