Performance 如何减少服务器响应时间?
当我在GTmetrix.com上查看我的网站时,我得到了以下时间线截图 如何缩短接收时间,使站点加载更快 发生这种情况是因为未优化的php代码吗?问题和建议:Performance 如何减少服务器响应时间?,performance,apache,magento,Performance,Apache,Magento,当我在GTmetrix.com上查看我的网站时,我得到了以下时间线截图 如何缩短接收时间,使站点加载更快 发生这种情况是因为未优化的php代码吗?问题和建议: 问:62毫秒的接收时间可以。减少1.5秒的等待时间怎么样 S:等待时间是服务器撰写页面所需的时间 - 问:您是否启用了平板电脑 S:启用平面表并确保所有自定义集合查询仍能正常工作(集合查询将自动从基于EAV资源的查询转换为基于平面资源的查询) - 问:您是否启用了缓存(使用缓存服务器而不是文件缓存) S:在local.xml中
- 问:62毫秒的接收时间可以。减少1.5秒的等待时间怎么样
- S:等待时间是服务器撰写页面所需的时间
- 问:您是否启用了平板电脑
- S:启用平面表并确保所有自定义集合查询仍能正常工作(集合查询将自动从基于EAV资源的查询转换为基于平面资源的查询)
- 问:您是否启用了缓存(使用缓存服务器而不是文件缓存)
- S:在
中将Memcached、Redis或APC配置为缓存服务器local.xml
- 问:你的Magento更像是一个带有主题的开箱即用的安装,还是主题和逻辑都是高度定制的
- S:如果是OOTB主题,那么该主题是否支持适当的缓存
- S:如果它是一个高度定制的Magento,您是否考虑了必要的缓存支持代码
getCacheKey
方法并返回字符串,该字符串需要根据渲染块的HTML内容
示例:
- 如果您有一个显示恒定HTML片段的块,则键可以是任何唯一的字符串,您可以“计算”该字符串,而无需实际重建/重新命名该块(例如在layout.xml中为该块指定的名称)
- 如果您有一个显示“Hi{{username}!”的块,那么密钥应该基于用户名或用户id,例如
当前用户很容易从会话中获取,因此您不必运行数据库查询来获取它$key=“user\u welcome”。$user->getId();
- 如果您有一个依赖于多个参数的块,那么在构建缓存键时需要考虑所有这些参数,并且您需要考虑这样一个事实,即参数信息需要通过尽可能少的处理来访问——如果您只是为了计算缓存k而从DB中获取信息的话ey您可能会误解我的做法——例如,一个块的内容可能根据当前的CMS页面id有所不同,但您不需要从DB加载页面对象,您只需处理URL或
变量并使用该信息构建缓存键即可$\u GET
- 删除任何不需要的插件
删除任何不需要的非活动或活动插件。62毫秒的接收时间可以。减少1.5秒的等待时间如何?等待时间是服务器合成页面所需的时间。是否启用了平面表?是否启用了缓存(缓存服务器而不是文件缓存)?你的Magento更像是一个带有主题的开箱即用安装,还是主题和逻辑是高度定制的?如果是OOTB主题,主题是否支持适当的缓存?如果是高度定制的Magento,你有没有考虑到必要的缓存支持代码?@MihaiStancu我的Magento是高度定制的,我没有使用flat tables,我正在使用varnish。如何减少等待时间?varnish(默认情况下)处理静态内容(JS、CSS、图像等)。我不确定它(默认情况下)是否也会检查html文件是否正在使用——我想是的——因此您可以从配置html页面以使用eTag头开始缓存(但要注意过期时间——如果是动态页面,访问者会看到旧信息,你必须决定哪些页面可以接受。我将把我的评论总结成一个答案。