摘要: 今年上半年公司的产品开发侧重点从开发新产品转向了性能优化和运营,因此需要我们针对性能优化这一块,制定一些计划。二月份已经进行了一些初步的实践,这里做一个小结,便于今后参考。一、前端优化1.页面初始资源的加载通过YSLOW+PageSpeed来进行前端性能检测,根据其给出的意见做出对应的调整。由于产品中前端页面都比较简单,目前这部分内容的评分基本符合要求。2.JS脚本执行效率考虑到我们的产品大多为客户端内嵌网页,很多数据是从客户端异步获取的,JS脚本也会受到这些数据请求时间的影响,且内嵌客户端网页不能通过Firebug之类的工具进行断点调试,目前的思路主要是自己写小工具,在JS代码中埋点,最后输 阅读全文
posted @ 2013-02-25 21:26 周昌炬 阅读(1918) 评论(5) 推荐(1) 编辑
摘要: 最近组内一直在推行代码评审,到现在也进行了约10期了,虽然经验还很少,但是也应该总结反思一下。这里总结一下这个过程中的一些东西,算是一个整理贴。以下纯属个人见解,可能有的观点并不科学,仅供参考。一.为什么要进行代码评审?凡事都有其目的性,很多时候,我们做一件事情,但是做着做着,到后面发现已经偏离了初衷。有鉴于此,首先得明确目的性。那么代码评审的目的是什么呢?个人觉得,应该有如下这几个目的: 1.过滤肉眼可见的表面问题这应该是最基础的目的,通过群众的眼睛,找出一些显而易见的代码层面的问题,比如明显的逻辑错误、缺少了异常处理、可读性差、不符合编码规范等等。不过这也仅限于一些表面问题,因为真正业务相 阅读全文
posted @ 2013-01-16 12:18 周昌炬 阅读(2750) 评论(2) 推荐(6) 编辑
摘要: 根据以往开发中的一些经验,总结了一下公司WEB类产品当前的开发流程,便于开发中当不知道下一步做什么时,有个参考。如下图:这是一个总体的流程,具体项目中的实施过程可能略有差异,毕竟很多项目涉及其他部门,在流程上需要协调。不过大致流程都是差不多的。 阅读全文
posted @ 2013-01-13 19:22 周昌炬 阅读(357) 评论(2) 推荐(0) 编辑
摘要: 1.代理与反向代理代理服务器:代理内部网络对Internet的连接请求。不支持外部对内部网络的访问请求。反向代理服务器:代理外部网络上的主机访问内部网络。2.常见WEB负载均衡方法(1)用户手动选择常见于各个资源下载网站,用户自己手动选择从哪个服务器下载。(2)DNS轮询方式对同一主机名,添加多条A记录,让其DNS轮询多个IP可以通过Linux的dig命令查看域名解析情况:dig xxx.baidu.comDNS轮询的缺点:A.可靠性低B.负载分配不均衡因此DNS轮询适用于可靠性要求不高的负载均衡,比如图片服务器集群、纯静态网页服务器集群等。(3)四/七层负载均衡设备通常作用与OSI的第四层或 阅读全文
posted @ 2013-01-10 07:59 周昌炬 阅读(2359) 评论(3) 推荐(3) 编辑
摘要: 昨天浏览线上项目,发现了一个问题:部分文本输出中的引号前多了一道反斜杠,比如:引号内容多了\"反斜杠\"单从页面展现的结果来看,猜测应该是PHP中的magic_quotes_gpc配置被开启了的原因。然后检查了下程序,发现在入口文件中,已经动态关闭了这个配置:ini_set('magic_quotes_gpc', 'Off');为什么没有生效呢?经过一番查找,同事帮忙找到了原因,原来是因为在我动态修改这个配置之前,请求已经被解析了,因此该修改并未针对当次请求生效。详见如下网页,有一位同行也遇到了相同的问题:https://bugs.php.n 阅读全文
posted @ 2013-01-09 09:22 周昌炬 阅读(1648) 评论(1) 推荐(1) 编辑
摘要: 最近养成了看书的习惯,相当难得。在这个过程中,既扩大了自己的视野,也在个人素养上面受益颇丰。虽然许多内容看过后,可能就“轻轻地我来了,正如我轻轻的离开,挥一挥衣袖,不带走一片云彩”,但是哪怕每次只有那么一两句话能带给我感悟,也是一种莫大的收获。 我看的书大部分都是和技术无关的。个人认为,技术只有学以致用,才能快速掌握,因此本着“问题驱动”的学习模式,对于技能方面的锻炼,我大都是工作中遇到了,然后再去查找资料学习。过往的经历也验证了,这种方法至少在我身上,是正确的。因此,针对自身弱点,我将阅读的目的定位在了增强时间管理与扩大自己的视野上,选择的书籍也是这方面的居多。 随着阅读的继续,给我最大.. 阅读全文
posted @ 2013-01-08 13:04 周昌炬 阅读(399) 评论(1) 推荐(0) 编辑
摘要: 1.FastCGI是什么?CGI:公共网关接口(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。FastCGI:FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去fork一次.FastCGI是语言无关的、可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能。众所周知,CGI解释器的反复加载是CGI性能低下的主要原因,如果CGI解释器保持在内存中并接受FastCGI进程管理器调度,则可以提供良好的性能、伸 阅读全文
posted @ 2013-01-07 12:18 周昌炬 阅读(289) 评论(1) 推荐(0) 编辑
摘要: 配置文件结构Nginx的配置文件大致分为三个模块,其结构如下:events{}http{ server { } server { }}events中配置一些事件相关的属性,比如最大连接数、所用的网络I/O模型等;http中配置针对http请求的属性;server则是虚拟主机的配置,每一个server代表一个虚拟主机;一个最简单的虚拟主机配置http{ server { listen 80 default; server_name news.10jqka.com.cn; ... 阅读全文
posted @ 2013-01-05 18:03 周昌炬 阅读(247) 评论(1) 推荐(0) 编辑
摘要: Nginx是什么Nginx读作(engine x),可作为HTTP服务器、反向代理服务器、IMAP/POP3/SMTP 代理服务器等Nginx可以做什么事情反向代理加速FastCGI负载均衡WEB服务器邮件代理服务器......为什么要用Nginx公司以前都是采用的Apache作为服务器,但是,随着业务、技术的发展,用户量的壮大,在不同的阶段,我们需要采用不同的技术,当Apache已经不能适应当前的需求时,我们就需要寻找一种新的解决方案,Nginx就是我们目前的选择。选择Nginx的理由高并发(高达50000个并发连接数,得益于epoll和kqueue网络I/O模型,Apache使用的是传统的 阅读全文
posted @ 2013-01-05 16:19 周昌炬 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 最近一个项目中的页面是通过请求传递参数动态生成的,但是短时间内针对所有用户的相同请求,生成的页面是一样的。考虑到面向用户的服务器都开启了squid缓存,因此决定对请求做一个伪静态处理,使squid缓存生效,以提高性能。目前公司的线上服务器是Nginx的,我内网本地装的是Apache,测试服务器上是Nginx,因此对于这两种服务器,都进行了处理。先说一下Apache。Apache的伪静态既可以在配置文件中进行设置,也可以通过.htaccess文件配置,我是选择的后者。伪静态其实就是rewrite,因此需要先开启rewrite模块,即:LoadModule rewrite_module modul 阅读全文
posted @ 2013-01-05 12:36 周昌炬 阅读(342) 评论(0) 推荐(0) 编辑