PHP影片教學
》在本文中,我想介紹一些替代方案。如果您正在尋找可能減少生產中執行時間的可能性,這將很有用。讓我們來看看,哪種PHP方法可能會被效能更高的方法所取代,以及是否有成本或折衷的問題。
1.刪除重複項array_unique($array);
array_keys(array_flip($array));
787.31毫秒
| array_keys |
434.03毫秒
| 替代方法在此測量中快 |
用值替換了鍵。
2.取得隨機數組記錄
常規
array_rand($array);
$array[mt_rand(0, count($array) - 1)];
| #mt_rand |
| 替代方法是此測量速度快27.3倍 | (96.33%)。平均而言,速度提高了約8倍(87%)。這個結果特別令人驚訝,因為
3.測試字母數字字元
您有一個字串,要測試,如果它只包含字母數字字元。
preg_match('/^[a-zA-Z0-9]+$/', $string);
ctype_alnum($string);
##preg_match | ||||||
---|---|---|---|---|---|---|
ctype_alnum | 2.06毫秒 | |||||
#<p>在此测量中,替代方法快了<strong>7.5倍</strong>(86.59%)。平均而言,速度提高了约4倍(76%)。可以将相同的内容应用于<code>ctype_alpha() (检查字母字符)和ctype_digit() (检查数字字符)。4.替换子字符串您有一个字符串,想要用另一个子字符串替换它的一部分。 常规str_replace('a', 'b', $string); 登入後複製 替代strtr($string, 'a', 'b'); 登入後複製 表现我创建了一个包含500万个随机字符串的数组。这是最佳结果:
另一种方法是2.2倍(54.83%)在该测量更快。平均而言,速度提高了约2倍(51%)。 其他性能改进这是我整合到我的编码约定中的一些其他要点,发现它们可以稍微改善性能(如果适用):
最后几句话:我知道有关过早优化的讨论。我同意生产中的性能取决于瓶颈,例如数据库查询,在处理性能时应重点关注。但是我认为,如果有更快的替代方法,例如在正则表达式更易于处理和维护的情况下,为什么不使用它们呢? 最后我们已经看到,即使使用当前的PHP 7.4(已经比以前的PHP版本快很多),也可以通过其他方法来提高脚本性能。如果您想亲自验证本文中提供的数据,我创建了一个包含所有测试的存储库:
我使用了Bart van Hoekelen的出色工具来衡量执行时间。 转载自:Andreas 以上是分享4個提升腳本效能的PHP技巧的詳細內容。更多資訊請關注PHP中文網其他相關文章!
相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
最新問題
PHP數組從URL參數中取得的行為不如預期
我有一個包含類別ID的URL參數,我想將其視為一個數組,如下所示:http://example.com?cat[]=3,9,13在PHP中,我使用它從URL參數取得數組:$catI...
來自於 2024-04-06 22:09:02
0
1
1428
我應該在 apache 中哪裡放置 CustomLog 指令
我正在使用php:7.2-apachedocker。我需要禁用運行狀況檢查url登入訪問日誌。基於此鏈接,他們提到了有關修改Customlog指令的資訊。我不是關於需要更改Cust...
來自於 2024-04-06 22:03:59
0
1
990
傳回值中變數的格式是什麼?
我是php的新學習者。我發現有一段程式碼:if($x<time()){return[false,'error'];}邏輯或變數並不重要,但我不明白[false,'error'...
來自於 2024-04-06 21:55:20
0
1
778
依照ID對MySQL結果進行分組以便循環遍歷
我有一個表,其中有mysql中的航班資料。我正在編寫一個php程式碼,它將使用codeigniter3對資料進行分組和顯示journey_idair_idFlightDuratio...
來自於 2024-04-06 17:27:56
0
1
406
相關專題
更多>
熱門教學
更多>
|