秋色园QBlog技术原理解析:性能优化篇:字节、缓存、并发(十二)
文章回顾:
1: 秋色园QBlog技术原理解析:开篇:整体认识(一) --介绍整体文件夹和文件的作用
2: 秋色园QBlog技术原理解析:认识整站处理流程(二) --介绍秋色园业务处理流程
3: 秋色园QBlog技术原理解析:UrlRewrite之无后缀URL原理(三) --介绍如何实现无后缀URL
4: 秋色园QBlog技术原理解析:UrlRewrite之URL重定向体系(四) --介绍URL如何定位到处理程序
5: 秋色园QBlog技术原理解析:Module之页面基类设计(五) --介绍创建基类和自定义生命周期
6: 秋色园QBlog技术原理解析:Module之页面基类-生命周期流程(六) --介绍基类生命周期内部业务
7: 秋色园QBlog技术原理解析:Module之基类生命周期-页面加载(七) --介绍界面html加载原理
8: 秋色园QBlog技术原理解析:Web之页面处理-内容填充(八) --介绍html的内容是如何填充
9: 秋色园QBlog技术原理解析:独创的多语言翻译机制(九) --介绍html多语言翻译原理
10: 秋色园QBlog技术原理解析:页面内容填充及多语言翻译流程演示示例(十) --总结演示示例代码
11:秋色园QBlog技术原理解析:页面Post提交机制(十一) --介绍如果Post提交数据
附章:
1:秋色园QBlog技术原理解析:博客一键安装工具技术实现[附源码下载] --开源秋色园安装工具原理
ps:秋色园QBlog下载地址:http://www.cyqdata.com/download/article-detail-427
上节回顾:
本节介绍:
优化一:字节
为了减少传输的字节,通常都会采取一些压缩[html,js,css]
1:压缩html:秋色园采用将Html当xml方式加载的手段,默认就是无空格状态,因此天生就有这优势,连GZip压缩也省了。
2:压缩CSS:本人对CSS不精通,没办法整体优化,利用VS格式化:一条样式格式化成一行,再删除一些没用到的CSS样式,勉强少了几K。
3:压缩js:秋色园没有用js,所以没这方面的开销,省力又省心。
优化二:缓存
秋色园的缓存,全使用 CYQ.Data.Cache下:CacheManage
在长久的开发过程中,秋色园中形成了以下几种缓存:
1:缓存表架构:CYQ.Data 数据框架的默认缓存
2:缓存html架构:未经处理的原始html界面,即默认的皮肤的html[秋色园的缓存机制]
3:缓存经过处理的html架构:包括css路径处理,语言翻译等,但不包括数据填充,[秋色园的缓存机制]
4:缓存页面:缓存最后的html[秋色园的缓存机制]
缓存是层层递进的,有了以上的几层缓存保障,性能是刷刷的上去了,页面打开也很快。
三:负载来临,问题出现,失控的缓存
秋色园的运行环境:国外Godaddy的虚拟主机的子目录+Access数据库
天生不佳硬件的条件,让过往的一些优化在这里显的有些脆弱,坚持不了多久,文章上到几万,性能又再次走到边缘,首页时快时慢,缓存似有似无,并发写把站点折腾的一度打不开。
主要表现在以下几个大方面:
1:并发写操作:Access本身在并发写时经常有死锁发生,很纠结。
2:缓存的过期:几乎是不可控的,有时打开慢[缓存失效了],有时打开快[刚好缓存已起来了]。
3:翻页的速度:在访问量少的页面,特别是翻页,由于没有缓存的照顾,每次打开都3-5秒,让人感觉一个字:慢。
优化四:Access的并发控制处理
需要找到站点经常性写数据的操作点:
1:用户后台:
解决手段:通过增加Lock来避免并发
由于所有的更新删除插入,都执行的:ExeNonQuery函数,
所以只要以在底层这函数里加一个可配置的项,来决定启用Lock,解决。
2:高频率的文章与用户访问计数:
解决手段:通过一些手段来减少更新的频率。
优化五:掌控全局缓存,合理调优
缓存失控了?
缓存怎么用:
缓存何以失控?
试想下,缓存的一段时间你是怎么定的?
敲代码时就给了想当然的时间,对不?不对?不?对?不对?
好了,说问题,正常情况下,缓存是怎样失控的?
1:不知道缓存的对象在内存中的使用情况,缺少同步与清理机制。
2:没用的缓存占了大量内存、内存回收看不见、性能优化全靠猜猜猜。
失控的效果与后果?
效果:
后果:
秋色园缓存早期情况:
可控的缓存设计
一个良好的系统,必须对缓存的使用情况有所掌控,再根据实际环境做适当缓存调整策略,进而同样的资源,有更多的发挥。
秋色园缓存目前情况:
这里截一张秋色园的缓存全局情况图:
如上图:
其它:
使用 CYQ.Data.Cache 来缓存信息,就可以打印全站的缓存列表,掌握全局,做到合理优化?
对的!!!版本要求?近期会发布新版本,将带此功能,敬请关注。
总结:
本节介绍了秋色园QBlog 的基础优化策略,下节继续介绍的优化策略后续部分,敬请关注。
版权声明:本文原创发表于博客园,作者为路过秋天,原文链接:
http://www.cnblogs.com/cyq1162/archive/2011/05/05/2037791.html
![](/img/my/wx.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
秋色园QBlog技术原理解析:性能优化篇:读写分离与文本数据库(十八)
上节回顾: 上节 秋色园QBlog技术原理解析:性能优化篇:用户和文章计数器方案(十七), 秋色园QBlog对于频繁产生更新操作的访问计数器(用户表及文章表),进行了另一种优化方案处理,使得原来并发进行的操作,变成了定时的单个队列式顺序更新操作,有效的解决了计数器引发的并发的问题。 本节概要: 虽然减压方案频繁出招,可是依旧没能阻挡住access黄金4K的绝杀。 在压力之下,梦幻潜能再次被激发。 于是,新的绝招再次出世:一个失传已久的招数:文本数据库。 本节内容: 1:分析寻找优化点: 通过CYQ.Data的 AppDebug(即将发布的V4.5.5版本包含此类),打印出页面的SQL语句: PS:关于打印页面SQL语句的优化,可见之前的文章:秋色园QBlog技术原理解析:性能优化篇:全局的SQL语句优化(十三) 首先观察页面这些语句,我们看到这里涉及到几条语句: 1:第一次的表架构获取语句,即where 1=2的语句 2:博客用户的信息读取语句 3:友情链接的语句 PS:如果没有缓存,当然还有很多和文章列表相关的语句,文章的下节重点再讲。 然后我对着这些语句寻思了很...
- 下一篇
秋色园QBlog高性能博客开放源码下载 限量下载1000次
写在开源前的几句话: 1:本次开放的源码为V1.0版本源码,限量下载,次数为1000次。 PS:目前下载量已近1000次,准备停止对外下载了,如果你是第1000次以外的下载者,想获取源码,你可以按以下方法进行: 请留言有意义的评论,并附上你的邮箱地址,对认真评论的人将直接发送源码到你的邮箱中[最多只发50人],对于只留邮箱,不带其它正面评论的,我就省点力不发了。 再PS:50个邮件名额已满,源码将不再发送。后来者只能说声Sorry,秋色园V1.0 版本源码将进入不定期封源状态。 2:使用源码请请先阅读源码里的“开源协议及商业授权协议说明.txt” 3:打酱油的,观光的,懒人,扮清高的,骂阵的,非诚打扰。 4:秋色园整体架构及代码整体难度偏中上,新手研究可能有点吃力,但只要你是真心想研究,想学习,想进步,我就义无反顾的为你解答。 5:这是一套创新的经典的架构与精华的代码,无论何种层次的开发人员只要用心研究,相信都能得到不少思想的提升与灵感。 6:你将看到的源码与架构,不是webform,不是mvc,是的,.NET原来还能这么用,这么写,这么的不同寻常。 CYQ.Blog(简称Q...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- Red5直播服务器,属于Java语言的直播服务器