这纯粹是出于好奇,但对于我设置的每个本地服务器,在显示页面之前总是有 0.5-2 秒的延迟。
举个例子,我设置了一个运行 apache、mysql 和 php 的完全空白的 ubuntu 服务器。如果我有一个带有 phpinfo() 的文件;输入并从真正位于服务器旁边的机器请求该页面,该页面仍将需要一两秒钟才能加载。为什么它不是 [几乎] 即时的?
两台机器都使用千兆交换机运行四核处理器、8GB 内存等。为什么像 phpinfo 这样的简单请求需要这么长时间才能“发生”?
这纯粹是出于好奇,但对于我设置的每个本地服务器,在显示页面之前总是有 0.5-2 秒的延迟。
举个例子,我设置了一个运行 apache、mysql 和 php 的完全空白的 ubuntu 服务器。如果我有一个带有 phpinfo() 的文件;输入并从真正位于服务器旁边的机器请求该页面,该页面仍将需要一两秒钟才能加载。为什么它不是 [几乎] 即时的?
两台机器都使用千兆交换机运行四核处理器、8GB 内存等。为什么像 phpinfo 这样的简单请求需要这么长时间才能“发生”?
可能有很多因素会影响显示它所需的时间。如果有任何代码,它仍然必须被解释和运行。DNS 查找仍然会发生,因此存在延迟(除非您对它们进行所有本地主机查找。)由浏览器呈现。协议的开销。
如果您有兴趣,可以运行 wireshark 并查看查找和协议开销的网络端。
其他一切都来自服务器处理请求和客户端呈现响应所花费的时间。
尝试使用 ab 进行基准测试:
phpinfo() 使用了一些资源并需要一些时间,浏览器渲染也需要一些时间。在千兆 LAN 上提供静态(短)html 页面需要我 5 毫秒。
PS:现代浏览器真的很慢:/
1.) 服务器上的第一次点击和有问题的 PHP 脚本的第一次调用实际上导致许多配置被解析、解释器(可能)加载、脚本加载、网络服务器中的模块上线等。在随后的查询几乎总是更快。
2.) 即使在理想条件下,在您的 0.5 - 2 秒期间,在您的机器经历多个 TCP 会话的设置(每个都需要几毫秒的握手),您的浏览器识别自己并工作之间,也会有许多活动部件在起作用服务器的功能,您的浏览器最终提交其请求,然后服务器必须解析该信息并将其在堆栈中上下传递,然后最终将其格式化为 HTML 发送回给您。
现代脚本/网络平台的实施相当复杂。与对服务器执行 ping 操作或放置静态“Hello world!”相比,它可能看起来有点繁重。html 页面,但通用功能非常令人印象深刻。
当然,另一点是您描述的是一个完整的库存系统。几乎总是可以做一些事情来调整它以更好地响应您的特定工作负载。