gpt4 book ai didi

php - 我如何判断我的 php 脚本用完了多少内存/资源?

转载 作者:可可西里 更新时间:2023-11-01 12:33:57 27 4
gpt4 key购买 nike

我正在调试我的应用程序,简而言之,应用程序在我的在线服务器上快要死了,或者它可能是我的服务器快死了。但是我已经检查了这个应用程序三个不同的服务器并且都显示了相似的结果,应用程序会运行一段时间但是一旦我打开越来越多的请求突然我会收到网络错误或者网站无法访问加载。

我怀疑这是我的代码,所以我需要找出如何减少资源密集度,事实上我不知道为什么它首先要这样做。不过它在我的本地主机上运行正常。

还是因为我将其托管在技术上共享的主机上?我应该寻找专门的托管服务来托管应用程序吗?我的应用程序中有很多复杂的数据库查询和 ajax 请求。

最佳答案

至于检查您的脚本使用了多少内存,您可以定期调用 memory_get_usage(true)在你的代码中的一些点来识别你的脚本的哪些部分正在使用内存。 memory_get_peak_usage(true)显然会返回已使用的最大内存量。

您说您的应用程序可以正常运行一段时间。这是一直在运行的单个脚本,还是许多不同的页面请求/访问者?每个脚本通常都有一个 max_execution_time(通常默认为 30 秒)。这可以通过调用 set_time_limit() 在每个脚本的基础上在代码中更改。 .

在 php.ini 中也设置了固有的 memory_limit。在共享主机上这可能是 64M 或更低。

“......一旦我打开越来越多的请求......” - 客户端可以向服务器发出的同时(ajax)请求的数量是有限制的。浏览器可以设置为 8 甚至更少(这可以通过 about:config 在 Firefox 中更改)。这是为了防止单个客户端用请求淹没服务器。服务器可以配置为禁止打开过多请求的客户端!

共享主机可能具有限制性。但是,如果主机没有托管太多站点,那么它们可以成为非常强大的服务器,让您在短时间内获得大量的权力。强调短时间 - 控制在共享服务器上消耗过多资源的脚本符合主机的利益,因为其他客户会受到影响。

Should I look for specialised hosting for hosting an application?

你必须更具体。现在大多数网站都是“应用程序”。如果您要做的不仅仅是提供网页服务,并且不断运行会运行一段时间的密集型脚本,那么您可能需要使用专用托管服务。不仅是为了您的利益,也是为了共享服务器上其他人的利益!

关于php - 我如何判断我的 php 脚本用完了多少内存/资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328156/

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