当前位置:  开发笔记 > 编程语言 > 正文

优化PHP字符串连接

如何解决《优化PHP字符串连接》经验,为你挑选了5个好方法。

这篇文章不是一个真正的问题,但分享一些编码技巧可能会有用.

以下是我想与您分享的内容.我将展示4个做同样事情的例子.但只有最后一个才是最好的.

$foo = 'John SMITH';

echo "Hello $foo, welcome on my website.";

echo "Hello " . $foo . " welcome on my website.";

echo 'Hello ' . $foo . ' welcome on my website.';

echo 'Hello ', $foo , ' welcome on my website.';

我相信大家都知道这echo '$foo'不起作用,但我仍然非常确定你使用双引号来显示一个简单的信息. 这很糟糕.

好吧,让我们开始:第一个是坏的(以及第二个)因为使用双引号强制php扫描字符串以寻找要完成的替换(我的意思是变量).

第二个是好一点,因为php无法替代.

第三个,因为简单的引用更好,所以语言知道他可以只发送文本而不处理,但"坏"的事情是使用连接(点操作符,如第二个例子).

最后一个使用简单的引用和昏迷操作符.为什么这个解决方案更好?

那么,使用第三种解决方案会发生什么?

php创建一个字符串,包含"Hello ",然后它必须放大它,把foo变量的内容("John SMITH"),然后再放大它来放" Welcome on my website."句子.然后,echo可以使用这个,以...回声:)

而在第4个中,唯一要做的echo就是发送"Hello",然后发送$ foo的内容,然后发送"Welcome on my website".到输出,这就是全部!因为echo只需发送文本,而不创建必须放大以包含整个文本的字符串(这将是凹的,必须增长(因为连接)然后显示.

我会尝试找回一些基准并将它们放在这里.

免费评论或反应,并原谅我的英语,这不是我的母语.



1> Michał Rudni..:

与哪种解决方案表现更好完全无关.计算机速度极快且CPU周期很便宜,因此毫秒优化毫无意义.唯一真正的优化是帮助更快地阅读代码的优化,这样您就可以节省宝贵的时间并专注于实际交付工作代码.


@Gangnus:两点:1.这是PHP,因此它可能会在远程计算机上运行,​​然后将内容提供给客户端; 2.即使不是这种情况,性能上的差异也很小,以至于无法察觉 - 即使在成千上万的循环之后,你仍然会看到*可能是*毫秒的差异.一个70年代的苏联计算器不会注意到这个微不足道的微优化...而且`echo'是少数几个从未在大规模循环中看到的功能之一.
你们大约落后2 - 3年.平板电脑和手机不是那么快.优化在那里非常重要.在Android/iOS中,主要优化是处理器/电池时间,而不是可读性.
哦对不起.我没有注意到,这个帖子过去4年了.

2> Bombe..:

创建一个小的(但仍然是吸吮:)基准并运行它会产生以下结果:

0.0022029876709
0.00211095809937
0.00213599205017
0.00551700592041

最后一种方法显然是最慢的.



3> Genericrich..:

优化的三个规则是:

    不要优化.

    不要优化.

    不要优化.

只有在了解减速的位置后,才能将其保存为最后的事情.

否则,你会把马放在马前,可以这么说.


通过从"切换"切换到您在整个生命周期中编写的所有应用程序中保存的内容,您将花费更多时间阅读这些评论.

4> Paul Dixon..:

在实践中,这几乎总是不会成为您的主要瓶颈.

http://www.procata.com/blog/archives/2005/03/08/microbenchmarks-of-single-and-double-qouting/



5> Paweł Hajdan..:

这不值得.即使您设法使字符串连接速度提高30%,您的整个应用程序也可能会遇到0.1%的加速速度(不要用字面意思;可以忽略不计的加速).大部分时间都花在数据库查询或更复杂的逻辑上.

推荐阅读
mobiledu2402851373
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有