https://yue.ma 页面秒开的点点滴滴 优化实战记

https://yue.ma 是Global View全球视野资产配置服务,为众多的用户提供全球范围内的资产配置!优化项目的目标是秒开,即1秒内打开页面!未优化之前存在页面加载时间长,很多用户反馈慢!而服务器的负载很低,网络带宽不到10%,cpu\内存也都在10%以下。

优化思路一: 以最快的速度打开页面,秒开是前提在网速正常的情况下,因此网络因素造成不秒开不在本次优化的范围内。将页面的所有数据加载行为去掉,纯静态资源的形式下查看所需的毫秒数,40毫秒,也就是优化的极限在40毫秒。但是优化也是有成本的,需要将页面数据加载拆分出来,在1秒的忍受时长里,将耗时上的数据行为拆出来。等页面加载完之后,异步请求加载。让人以最快的速度看到页面。

优化思路二: 不经常变的数据使用localstorage直接存在浏览器的本地存储里,这样子,页面加载完之后,可以很快的呈现数据,在实时与体验速度上做了一下平衡。先呈现本地存储数据中的。再请求远程的,如果数据变了,则刷新本地存储与页面,如果数据未变,则无需做任何调整。这样子,客服不仅以最快的速度看到了页面,还以最快的速度看到了数据。

优化思路三: 将服务器从静态资源服务中解脱出来,目前采用的方案是CDN,为了防止出现打广告的嫌疑,就不说产品名称了。从实施的效果上来讲,还是不错的。基本上服务器的带宽、资源使用都降了下来,CDN搞住了流量,而且本身的速度也由于CDN的节点多而方法得到了提升。如果不是特别有实力,感觉用第三方的CDN是不错的。省去了自己搭建CDN. 优化思路四: 服务器的内存多,直接将内存挂载成一个目录,将站点文件全部同步到这个特殊的内存目录,也就意思着所有的文件读取都在内存中完成。由于上传的图片在内存中,则会丢失,所以要写脚本同步。

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
file=”/www/wwwroot/memory.licaishi.app/index.php”
if [ -f “$file” ]
then
echo “$file found.”
else
echo “$file not found.”
echo “let’s recover memory files”
cp -r /www/wwwroot/licaishi.app/. /www/wwwroot/memory.licaishi.app
fi

echo “—————————————————————————-”
endDate=`date +”%Y-%m-%d %H:%M:%S”`
echo “★[$endDate] Successful”
echo “—————————————————————————-”

图片同步至硬盘脚本

#!/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo ‘同步图片’
cp -n /www/wwwroot/memory.licaishi.app/upload_file/. /www/wwwroot/licaishi.app/upload_file
echo “—————————————————————————-”
endDate=`date +”%Y-%m-%d %H:%M:%S”`
echo “★[$endDate] Successful”
echo “—————————————————————————-”

从内存中运行站点文件的好处,响应比较稳定。

经过优化之后,页面速度明显得到改善!

 

Leave a Reply