1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PHP処理速度改善の個人学習メモ

Last updated at Posted at 2025-01-05

【環境】

■ 環境
・PHP8.2.4

【php.iniの設定】

・JITの設定
XAMPP8.2.4のphp.iniに以下を追記。

php.ini
zend_extension = opcache
opcache.enable = 1
opcache.enable_cli = 1
opcache.jit = tracing
opcache.jit_buffer_size = 128M

上記の意味に関しては公式サイトを参考。
https://www.php.net/manual/ja/opcache.configuration.php

10万回、ループさせた計測結果

test.php
<?php
    $time_start = microtime(true);
    for($val = 0; $val <= 100000; $val++){
    
    }
    $time_end = microtime(true);
    $time = $time_end - $time_start;
    var_dump($time);

・JITの設定なし:0.004501819610595703125
・JITの設定あり:0.0003719329833984375
※ マイクロ秒

結果:JITの設定で処理速度が上がった。

【実装の改善】

https://qiita.com/kapitan/items/47d89449f23bc7f7c9bb
JITを設定した状態で、こちらの記事のソースを参考に計測させて頂きました。
実際に多く使いそうなものをピックアップしました。
計測結果は実行毎に変わりますが、平均的な計測結果を記載しました。

①. 比較演算子

== → ===

・「==」:0.0004198551177978515625
・「===」:0.000235080718994140625

②. 文字列の置換

preg_replace()→str_replace()

・「preg_replace()」:0.0165960788726806640625
・「str_replace()」:0.010623931884765625

③. 文字列が含まれるか

preg_match()→strpos()

・「preg_match()」:0.008882045745849609375
・「strpos()」:0.003960132598876953125

④. 配列に代入

array_push()→$array[]で代入

・「array_push()」:0.005177021026611328125
・「$array[]」:0.00269985198974609375

※ 全てマイクロ秒

【所感】

前回書いたこちらの記事も併せて考えれば、クエリも含めた全体的な処理速度の改善を見込めるのではないかと思う。
https://qiita.com/pig_buhi555/items/6e5f729f836370d1664a

【参考】

ありがとうございました。
・JITの設定方法 参考
https://qiita.com/jkichi/items/7412a654cfefa0c45bc0

・処理の計測方法 参考
https://eclair.blog/php-microtime/

・PHP処理速度改善 参考
https://qiita.com/kapitan/items/47d89449f23bc7f7c9bb

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?