需求描述
因业务需要,需对考试系统进行压力测试。
方案调研
流量分析
压力测试
- 选出一款用于对网站进行压力测试的工具。
- 对网站进行压测,查看前端、后端优化前后网站性能差异。
入选方案
以列表形式记录入选的方案。
应用过程
阅读资料
先把 https://github.com/Dream4ever/Coding-Life/blob/master/Front-End/Front-End Resource Collection.md#性能优化 这里收集的资料过一遍。
一系列的文章读完了,下面就该把这些文章综合起来,列出所有可优化的点,然后按照重要性依次优化。
要点汇总
推后。
性能分析
先在电脑上查看服务器往客户端发送数据的情况。
- 在 Chrome 的隐身模式下,访问指定页面。
- 访问首个页面之前,要开启开发者工具的“禁用缓存”选项,并清除浏览器缓存,保证首次访问页面的效果。
- 首个页面加载成功之后,将浏览器完整截图,然后清空请求信息,并开启“保留日志”选项。之后每加载完成一个页面并截图之后,就都要清空请求信息,这样就能完整保留下一个页面的请求。
- 首个页面加载成功之后,取消“禁用缓存”选项,这样后面的页面就可以正常使用缓存了。
整套流程下来,服务端对浏览器的响应就都记下来了。将服务器返回的文件按类型分类(比如分为 PHP/CSS/JS/图片 这四类),以 PHP 文件为例,表格格式如下所示:
| 文件名称 |
体积 |
优化方案 |
实施难度 |
优先级 |
| exercise |
219K |
前后端分离 |
高 |
高 |
| exam |
91K |
同上 |
同上 |
中 |
| result |
31K |
同上 |
同上 |
低 |
接着在手机上研究客户端往服务器发送数据的情况。
- 让手机和电脑连上同一个 WiFi,配置手机 WiFi 的 HTTP 代理为电脑端 Charles 中设置的端口号,IP 当然是用电脑的 IP 了。
- 手机只需要查看向服务器发送的数据包的尺寸。用各个页面测试,请求的 Header 部分普遍在 600~800B 之间,Body 的话,只在提交答案时才有实际意义,自主练习时,20 道选择题加 20 道判断题,Body 的尺寸为 719 字节;自我检测和模拟考试是 80 道选择题加 40 道判断题,Body 的尺寸为 2.11KB。
- 每道题提交数据格式为:
QuestionA123456=B ,一共 17 字节
- 多道题提交数据格式为:
**&**&** ,N 道题的总字节数为 18 * N - 1
统计完上面两方面的数据之后,又根据前面在 Chrome 中截的图,统计了每个页面加载完毕时,所发送的请求数(不含已缓存资源)以及所加载文件的总体积(同样不含已缓存资源),之后可优先对总体积明显偏大的或请求数过多的页面进行优化。
压力测试
待完成。
要点总结
需求描述
因业务需要,需对考试系统进行压力测试。
方案调研
流量分析
压力测试
入选方案
以列表形式记录入选的方案。
应用过程
阅读资料
先把 https://github.com/Dream4ever/Coding-Life/blob/master/Front-End/Front-End Resource Collection.md#性能优化 这里收集的资料过一遍。
一系列的文章读完了,下面就该把这些文章综合起来,列出所有可优化的点,然后按照重要性依次优化。
要点汇总
推后。
性能分析
先在电脑上查看服务器往客户端发送数据的情况。
整套流程下来,服务端对浏览器的响应就都记下来了。将服务器返回的文件按类型分类(比如分为 PHP/CSS/JS/图片 这四类),以 PHP 文件为例,表格格式如下所示:
接着在手机上研究客户端往服务器发送数据的情况。
QuestionA123456=B,一共 17 字节**&**&**,N 道题的总字节数为18 * N - 1统计完上面两方面的数据之后,又根据前面在 Chrome 中截的图,统计了每个页面加载完毕时,所发送的请求数(不含已缓存资源)以及所加载文件的总体积(同样不含已缓存资源),之后可优先对总体积明显偏大的或请求数过多的页面进行优化。
压力测试
待完成。
要点总结