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页面生成耗时分析相关推荐

  1. 2021-2027全球与中国登陆页面生成软件市场现状及未来发展趋势

    本文研究全球及中国市场登陆页面生成软件现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美.欧洲.日本.中国.东南亚.印度等地区的现状及未来发展趋势. 2019年全球登陆页面生成软件市场 ...

  2. 2019年末逆向复习系列之努比亚Cookie生成逆向分析

    郑重声明:本项目的所有代码和相关文章, 仅用于经验技术交流分享,禁止将相关技术应用到不正当途径,因为滥用技术产生的风险与本人无关. 这篇文章是<2019年末逆向复习系列>的第二篇:< ...

  3. CANN AICPU算子耗时分析及优化探索

    摘要:本文以GreaterEqual作为测试算子,该算子计算逻辑较为简单(output = input1 >= input2),旨在尽可能降低计算耗时,使得算子耗时尽可能以数据操作和算子调度作为 ...

  4. 编译时如何看到每个文件的编译选项_导出 Clang 可视化编译耗时分析报告 —— ftimetrace 的使用...

    前言 笔者最近加入了新的团队,开始负责编译打包相关工作,因而开始学习优化编译时间相关技术.讲真,蛮开心的,每天都有挑战,同时每天都有收获,天天都在涨姿势,所以想记录下来并分享出来,也方便以后自己需要时 ...

  5. app启动优化耗时分析

    app的启动优化耗时分析 前提:记录下这次的坑爹操作吧.前不久,经理找到我.让帮忙优化一个项目的ap,启动大概需要5s(瘆人),将其优化至3s,后来又说<=2s. 之后,就开始了分析- 1.起步 ...

  6. 友盟启动耗时分析之耗时趋势及性能拆解

    说到启动耗时分析,如果一个app启动耗时过长的话,无论你的app里面的内容多么丰富有趣;作为一个用户,首先是没有耐心去等待的;于是接下来,就是这样一番操作:长按拖拽卸载,一套带走. 从个人层面讲,是对 ...

  7. QAX答题页面js逆向分析(二)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.通过前端js解密,获取答案 二.通过Python,模拟请求完成自登录到答题的所有操作. 1.引入库 2. 程序结构 ...

  8. 一个Web页面的问题分析

    一个Web页面的问题分析 几个月之前我接到一个新的开发任务,要在一个旧的Web页面上面增添一些新的功能.在开发的过程中发现旧的代码中有很多常见的不合适的写法,结合这些问题,如何写出更好的,更规范的,更 ...

  9. vue在微信里面的兼容问题_微信H5页面兼容性问题分析及解决方法

    随着H5页面越来越流行,越来越多的开发者都开始用最近H5做微信公众号,在这个过程中自然也会遇到不少的问题.小编在这里整理了五种常见的微信H5页面兼容性问题,来和大家分析一下问题的详情.出现原因以及相对 ...

最新文章

  1. 【转】通过Hibernate将数据 存入oracle数据库例子
  2. 20162329 2017-2018-1 《程序设计与数据结构》第十一周学习总结
  3. React Native开发之必备React基础
  4. Android消息广播的使用
  5. Class,表名,表单参数名关系
  6. 手机号归属地区编码_这些关于手机号码的冷知识 你知道吗
  7. 为您的Blogger博客设计一个美丽的新主题
  8. Telnet初试(本地测试)
  9. SharePoint品牌化和自定义--第一章节--SharePoint品牌化介绍(1)--为什么要进行SharePoint品牌化...
  10. 史上最全的自动驾驶研究报告(上)
  11. 英语的计算机求职回信,2020年计算机英文求职信范文模板
  12. Android View事件分发机制
  13. 常见的HTPP状态码
  14. android jsoup 课程表,使用jsoup爬取数据实现android课程表
  15. welook手机视频通话软件
  16. C++病毒——感染C/C++源文件
  17. 取消参考文献自动编号_Word2016写论文之尾注功能——参考文献自动编号与引用(包括方括号去除方法)...
  18. Sunday 算法详解
  19. 【两周快速入门pr】五、生活化vlog——你第一个vlog小视频(附相机推荐)
  20. java改变时间格式

热门文章

  1. 计算机上机模拟试题答案,2016计算机二级上机模拟试题及答案
  2. dev 报表设计器 怎么设置每页10行_可嵌入您系统的.NET 报表控件ActiveReports:带状列表组件...
  3. cisco router修改mac
  4. Shiro过滤器源码
  5. 大数据平台应用 17 个知识点汇总
  6. 原理分析_生化分析仪原理结构及参数对比
  7. crc32库 qt_Qt 打包32位库(包括WebEngineView)
  8. WAF机制及绕过方法总结:注入篇
  9. 记录”limxml2剖析:功能特性”之摘抄
  10. python 扫盲系列(1)