自己对php不相熟,如今驳回PHP的magento开源名目来做,在尽量少代码修正的状况下让页面加载快些(希冀日IP少于2,000,PV少于50,000,首页关上3s以内)。
网站是运转在Digital ocean的VPS(1GB 内存,30GB SSD硬盘)上的,不能做负载平衡。
这个站的图片比拟多,也比拟大,但总体数据量在10GB以下。
在chrome下监控了关上速度,发现首页文件期待期间到达了5s,而接纳期间为几百毫秒。
另外一些静态文件(JS,CSS很大,并且都在head内)也block住了其余页面元素的下载和页面渲染。
所以须要对页面和主机同时启动提升。
我的想法是从以下几个方面来做:1.首先从架构上经常使用lanmp(倾向这个)或许lamp。
计划经常使用网上的一键装置包,不太分明这几个之间最佳的版本组合是什么样的(都用最新版本?)? 是自己独自编译还是一键装置好?2.服务端提升,关键经常使用缓存手腕 1)Zend Optimizer提升PHP2)APC、eaccelerator或许XCache对PHP缓存以及最新进去的Opcache。
哪个比拟好?3)Varnish配合Nginx启动缓存静态资源缓存。
相关于squid,哪个比拟好?4)memcached启动数据库缓存1-4项同时经常使用不知道会不会有没有抵触?或许有没有更好的计划。
由于不想对代码启动大改,所以服务端缓存最佳通常这块请重点给出意见。
3. 经常使用CDN减速静态资源4. 提升静态资源,经常使用minify来兼并紧缩CSS,JS这些静态资源5. 启用gzip6. 对图片和JS等静态资源参与Expires头,这条应该算页面提升吧,放到前面来。
参考了一些资料后发现提升方法有很多,用的太多方法(特意是缓存手腕)隐患越大,有没有提升的最佳战略或许方法论(而不只仅从工具上)?请补充或许给意见,谢谢。
1. 系统提升方法论基于这样一个原理:系统是由互关系联和互动的各个局部组成的一致体。
这些系统要素之间的相互作用和咨询是系统提升的基础。
2. 系统提升的外围特色包含全体性、有序性和向外部结构提升开展的趋向。
在启动系统提升时,咱们须要关注全体的性能,坚持系统内各局部的有序性,并寻求结构上的提升。
3. 驳回系统提升的方法要求咱们以片面的思想形式来了解和解决疑问。
这象征着要逾越传统的线性思想,而是要思考事物之间的相互作用和影响。
4. 系统提升方法强调在剖析和设计环节中,要综合思考系统的一切方面,确保各局部协同上班,以成功全体的最优成果。
5. 钱学森将系统定义为若干相互作用和依赖的局部组合而成的无机全体,这些局部协同上班以成功特定的性能,并且系统自身也是更大系统的一局部。
6. 在数字信号解决畛域,系统被定义为能够解决数字信号的实体,这些实体在特定期间或时序上对信号启动加工和变换。
7. 不同的思想家和未来学家对系统概念有不同的形容,但共识是系统是由灵活复杂的各个局部组成,这些局部经过相互作用展现出结构和性能。
8. 系统通常由寻求平衡的实体导致,或许体现出震荡、混沌或指数行为等复杂特色。
9. 一个全体系统是由相互依存的元素或个体临时组成的互动局部,这些局部独特导致了系统的临时形态。
本书关键针对C++程序的性能提升,由5篇组成。
第1篇概述了运行程序性能提升上班的基本概念、总流程和方法论,是对性能提升的全局性引见。
第2篇引见C++言语的对象模型,与性能无关的言语个性及一些数据结构的性能,本篇是C++程序提升的基础。
第3篇关键引见C++程序内存经常使用的提升。
内存无疑是影响程序性能的关键起因,很多程序由于没有驳回正确的方法调配和经常使用内存,不只占用内存较多,而且运转效率不高。
在本篇中将联合一些操作系统的内存治理机制引见如何在特定的平台下启动内存提升。
此外,还将深化引见C++言语治理灵活内存的机制和方法,并引见一个罕用的内存治理方法,即内存池的成功。
第4篇引见程序启动性能的提升。
程序的启动性能不只遭到软件编程设计起因的影响,也会遭到系统结构起因的影响,尤其是灵活库的影响。
本篇将首先引见灵活库的基本常识,而后引见一些程序启动性能提升的详细方法。
“工欲善其事,必先利其器”,好的工具会大大提高程序性能提升的效率。
第5篇将引见3类性能工具,即内存剖析工具、性能剖析工具和I/O检测工具,它们是性能测量和剖析的利器。
本书实用于有必定C++开发阅历的开发人员,也可以作为初等院校关系专业师生的参考书。