内容简介:最近还是因为疫情,我把Yaf,Yaconf都优化了一轮,今天也完成了Yar的优化(事实上,Yar之前写的就还不错,没啥可优化的,哈哈),也新增了俩个能力。我来简单介绍下:也就是YAR_OPT_PERSISTENT, 这个配置之前一直有,只不过之前是设计为跨请求的持久化,这次做了优化,变成了基于PHP请求生命期的链接保持。
Yar(Yet Another RPC framework) 是一个轻量级支持并行调用的PHP RPC框架,是我还在微博的时候为了优化微博的性能而开发的一个工具,Yar的并行调用在微博被大量应用以降低用户请求耗时。
最近还是因为疫情,我把Yaf,Yaconf都优化了一轮,今天也完成了Yar的优化(事实上,Yar之前写的就还不错,没啥可优化的,哈哈),也新增了俩个能力。我来简单介绍下:
链接持久化
也就是YAR_OPT_PERSISTENT, 这个配置之前一直有,只不过之前是设计为跨请求的持久化,这次做了优化,变成了基于 PHP 请求生命期的链接保持。
也就是说,当你对一个Yar_Client设置了YAR_OPT_PERSISTEN为true的话,在一次RPC调用结束后,Yar不会销毁这个链接,从而加速后续的针对同样这个Client的RPC调用,我们来看个例子:
<?php
function bench($client) {
$start = microtime(true);
$client->header("connection");
echo microtime(true) - $start, "s\n";
}
$client = new Yar_Client("http://remote_host/index.php");
$client->setOpt(YAR_OPT_PERSISTENT, 1);
bench($client);
bench($client);
bench($client);
输出:
0.090613842010498s 0.045492887496948s 0.045512914657593s
可见,第二次调用的时候,耗时降低了一半,这是因为节省了TCP链接建立的耗时。
最后,链接会在PHP请求结束以后,整体释放,也就是PHP请求生命期的存活,不会垮请求,也不用担心内存泄漏。
自定义DNS
这个是来自 HuangeChaodian 网友的PR,基本上是有的时候,我们需要自定义某个Host的DNS解析结果,比如在测试的时候,把一个Hostname指向本地。
诚然,我们可以使用编辑hosts来达到这个效果, 但如果能在代码中切换,还是会方便不少,看例子:
<?php
$client = new Yar_Client("http://remote_host/index.php");
$client->setOpt(YAR_OPT_RESOLVE, "remote_host:80:127.0.0.1");
这样,Yar就会把remote_host解析为127.0.0.1了, 可以方便我们做一些本地调试。
性能优化
我现在发现,我写的代码随着时间的变化性能提升还是很明显的, 因为Yar写的比较晚, 相对来说可优化的点不多, 于是就简单点做了一些小修补,就不提了,:)
最后,2.1.0 已经发布 Yar-2.1.0 .
Enjoy!
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 关于 Rstudio 1.2 新功能介绍
- Milvus 向量搜索引擎 0.6.0 新功能介绍
- Apache Flink 1.3.0正式发布及其新功能介绍
- 爬虫管理平台 Crawlab 专业版新功能介绍: 性能监控
- 爬虫管理平台 Crawlab 新功能介绍:用 Git 做 CI/CD
- ECMAScript 2015 新功能關係
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
生态战略:设计未来企业新模式
周文艺 / 机械工业出版社 / 2017-3 / 49.00
思想影响战略,战略决定组织。在充满高度不确定性的今天,企业要生存和发展,必须不断进行组织变革与进化,跨越不连续性的鸿沟。本书分析了大量互联网生态型企业的案例,从生态思维进化、生态战略构建和生态组织变革三个角度出发,全面阐述了企业的进化之路。 本书认为,生态是企业进化的核心思想,企业须重新定义增长模式,从封闭的企业链转向开放的价值网,不断创新文化、技术和连接,培育新物种,实现企业从技术生态位到......一起来看看 《生态战略:设计未来企业新模式》 这本书的介绍吧!