php页面生成耗时分析
socket读写
使用 smarty 解析 space 的 blog 页模板,php 与 spuser 和 blogapp 通过 socket 各交互一次,spuser 和 blogapp 为虚拟的桩模块,接到请求立即返回。
从 socket_connect 到 socket_close 直接的一次 socket 交互的时间,包括写140(164)字节的请求,读取shead,unpack shead,读取返回数据,shead+返回数据共956(8707)字节。
耗时为 100 次 wget 页面返回结果的平均值。
交互耗时(s):
talk_with_spuser | 0.0002652 |
talk_with_blogapp | 0.0002777 |
桩模块耗时(s):
gserv_spuser | 0.000352 |
gserv_blogapp | 0.000252 |
注: 此处装模块的耗时统计包括了一些返回数据后的其它处理(select、close什么的),所以大于了 php 的耗时统计。
另外,后来查这个问题的时候发现,php 的 Benchmark类的精度不好,统计 talk_with_spuser 的耗时时,在紧挨 $timer->setMarker 的外面加了gettimeofday,统计出来的时间就差了近 50us
总的来说,可以认为 php 的socket 交互耗时很小,基本可以忽略。
unpack耗时
spuser(956 bytes) | 0.000242 |
blogapp(8707 bytes) | 0.0004318 |
这里 spuser 的数据只用了一次unpack,而 blogapp 的数据用了 1 + 1 * 5 + 1 * 15 = 21 次unpack
smarty耗时
smarty 无 cache 时:
smarty | 0.0350042 |
Total | 0.036453 |
smarty 有 cache (compile cache) 时:
smarty | 0.0018135 |
Total | 0.0032881 |
Total 为整个页面的生成时间,包括了 socket 交互、unpack 二进制数据和 smarty 的时间
php socket 与 c socket 读写
分别使用 php 和 c 程序循环向 echo 服务器发包和读包,统计平均耗时
第一列代表包的大小和循环次数
php | C | |
---|---|---|
8192 * 50000 | 26s | 26s |
8192 * 500000 | 4m26s | 4m20s |
1024 * 100000 | 40s | 39s |
php页面生成耗时分析相关推荐
- 2021-2027全球与中国登陆页面生成软件市场现状及未来发展趋势
本文研究全球及中国市场登陆页面生成软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.日本.中国.东南亚.印度等地区的现状及未来发展趋势. 2019年全球登陆页面生成软件市场 ...
- 2019年末逆向复习系列之努比亚Cookie生成逆向分析
郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是<2019年末逆向复习系列>的第二篇:< ...
- CANN AICPU算子耗时分析及优化探索
摘要:本文以GreaterEqual作为测试算子,该算子计算逻辑较为简单(output = input1 >= input2),旨在尽可能降低计算耗时,使得算子耗时尽可能以数据操作和算子调度作为 ...
- 编译时如何看到每个文件的编译选项_导出 Clang 可视化编译耗时分析报告 —— ftimetrace 的使用...
前言 笔者最近加入了新的团队,开始负责编译打包相关工作,因而开始学习优化编译时间相关技术.讲真,蛮开心的,每天都有挑战,同时每天都有收获,天天都在涨姿势,所以想记录下来并分享出来,也方便以后自己需要时 ...
- app启动优化耗时分析
app的启动优化耗时分析 前提:记录下这次的坑爹操作吧.前不久,经理找到我.让帮忙优化一个项目的ap,启动大概需要5s(瘆人),将其优化至3s,后来又说<=2s. 之后,就开始了分析- 1.起步 ...
- 友盟启动耗时分析之耗时趋势及性能拆解
说到启动耗时分析,如果一个app启动耗时过长的话,无论你的app里面的内容多么丰富有趣;作为一个用户,首先是没有耐心去等待的;于是接下来,就是这样一番操作:长按拖拽卸载,一套带走. 从个人层面讲,是对 ...
- QAX答题页面js逆向分析(二)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过前端js解密,获取答案 二.通过Python,模拟请求完成自登录到答题的所有操作. 1.引入库 2. 程序结构 ...
- 一个Web页面的问题分析
一个Web页面的问题分析 几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更 ...
- vue在微信里面的兼容问题_微信H5页面兼容性问题分析及解决方法
随着H5页面越来越流行,越来越多的开发者都开始用最近H5做微信公众号,在这个过程中自然也会遇到不少的问题.小编在这里整理了五种常见的微信H5页面兼容性问题,来和大家分析一下问题的详情.出现原因以及相对 ...
最新文章
- 【转】通过Hibernate将数据 存入oracle数据库例子
- 20162329 2017-2018-1 《程序设计与数据结构》第十一周学习总结
- React Native开发之必备React基础
- Android消息广播的使用
- Class,表名,表单参数名关系
- 手机号归属地区编码_这些关于手机号码的冷知识 你知道吗
- 为您的Blogger博客设计一个美丽的新主题
- Telnet初试(本地测试)
- SharePoint品牌化和自定义--第一章节--SharePoint品牌化介绍(1)--为什么要进行SharePoint品牌化...
- 史上最全的自动驾驶研究报告(上)
- 英语的计算机求职回信,2020年计算机英文求职信范文模板
- Android View事件分发机制
- 常见的HTPP状态码
- android jsoup 课程表,使用jsoup爬取数据实现android课程表
- welook手机视频通话软件
- C++病毒——感染C/C++源文件
- 取消参考文献自动编号_Word2016写论文之尾注功能——参考文献自动编号与引用(包括方括号去除方法)...
- Sunday 算法详解
- 【两周快速入门pr】五、生活化vlog——你第一个vlog小视频(附相机推荐)
- java改变时间格式
热门文章
- 计算机上机模拟试题答案,2016计算机二级上机模拟试题及答案
- dev 报表设计器 怎么设置每页10行_可嵌入您系统的.NET 报表控件ActiveReports:带状列表组件...
- cisco router修改mac
- Shiro过滤器源码
- 大数据平台应用 17 个知识点汇总
- 原理分析_生化分析仪原理结构及参数对比
- crc32库 qt_Qt 打包32位库(包括WebEngineView)
- WAF机制及绕过方法总结:注入篇
- 记录”limxml2剖析:功能特性”之摘抄
- python 扫盲系列(1)