当前位置:  开发笔记 > 编程语言 > 正文

如何减少服务器响应时间?

如何解决《如何减少服务器响应时间?》经验,为你挑选了1个好方法。

当我在GTmetrix.com上查看我的网站时,我得到了时间轴的以下屏幕截图.

截图

如何减少接收时间,以便加快网站加载速度.

这是因为非优化的PHP代码吗?



1> Mihai Stancu..:

问题和建议:

问:62毫秒的接收时间很好.你怎么样减少1.5秒的等待时间?

S:等待时间是服务器编写页面所花费的时间.

-

问:你是否启用了平台?

S:启用平面表并确保所有自定义集合查询仍能正常工作(集合查询会自动从基于EAV资源的查询转换为基于平面资源的查询).

-

问:您是否启用了缓存(缓存服务器不是文件缓存)?

S:将Memcached或Redis或APC配置为缓存服务器local.xml.

-

问:你的Magento更像是一个带有主题的开箱即用安装,还是主题,也许逻辑是大量定制的?

S:如果是OOTB主题 - 主题是否支持正确的缓存?

S:如果是大量定制的Magento,你是否考虑了必要的缓存支持代码?

背景资料:

漆:

Varnish是一个整页缓存,但是Magento是由块组成的 - 块独立到期 - 需要更频繁地重建整个页面的无关块.

Varnish(默认情况下)处理静态内容(JS,CSS,图像等).我不确定它是否(默认情况下)检查html文件是否使用eTags - 我认为它确实 - 所以你可以从配置html页面开始使用eTag标头并开始缓存(但要小心到期时间 - 如果是动态页面,访问者将看到旧信息,您必须决定哪些页面可以接受.

Memcached(或Redis或APC)和块缓存:

如果服务器上有Memcached,则可以配置local.xml文件以开始使用Memcached进行会话以及块缓存.但是由于你的Magento经过大量修改,你的Block类需要是可缓存的 - 它们需要覆盖getCacheKey方法并返回一个字符串,该字符串需要根据渲染块的HTML内容而有所不同.

例子:

如果你有一个显示常量HTML片段的块,那么键可以是任何唯一的字符串,你可以"计算"而不实际重建/重新呈现块(例如你在layout.xml中给出块的名称).

如果您有一个显示"Hi {{username}}!"的块 然后密钥应该基于用户名或user_id,例如$key = "user_welcome_".$user->getId();当前用户可以从会话中轻松获取,因此您不必运行数据库查询来获取它.

如果您有一个依赖于多个参数的块,则在构建缓存密钥时需要考虑所有这些参数,并且您需要考虑参数信息需要尽可能少的处理来访问的事实 - 如果您从数据库中获取信息只是为了计算缓存密钥,您可能会做错了 - 例如,根据当前的CMS page_id,块可能会有不同的内容,但您不需要从中加载Page对象DB要知道,您可以只处理URL或$_GET变量并使用该信息来构建缓存密钥.

推荐阅读
wangtao
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有