簡體   English   中英

是否可以在服務器端的HTTP請求(PHP,Symfony)之間共享對象?

[英]Is it possible to share an object between HTTP requests on the server side (PHP, Symfony)?

我想提高Web服務的性能,該服務需要創建無狀態但非常大(就內存而言)的對象。 這需要大量時間-0.3s。 用加載序列化對象替換構造函數可以將時間縮短到0.1s。 有沒有辦法將這樣的對象保留在http服務器內存(PHP,Symfony 4)中並在不同的http請求中使用它?

首先:通常是通過鍵值存儲(例如Redis或Memcache)來完成的。 但這並不能消除反序列化所花費的時間,這可能是這里的瓶頸。

這取決於您的設置。 通常,“ Web服務器通過mod_php,CGI或FPM響應請求並啟動PHP”無法做到這一點。 HTTP是無狀態的,PHP進程彼此隔離。 如果使用諸如ReactPHP之類的PHP直接用PHP啟動自己的服務器,則可以共享內存,因為您的應用程序將始終處於“啟動”狀態,這與Java服務器進程非常相似。 但這改變了整個編程范式,因為突然之間您將不得不注意內存泄漏,多線程等問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM