*

php:文字列分割関数explodeとpreg_splitの速度について

公開日: : php


以前の記事で文字列分割を行うexplodeとpreg_splitを紹介した際に、explodeの方が高速らしいとの記載をしました。今回はどの程度の違いがあるのか確認してみたいと思います。

 

検証方法

文字列を特定文字列で分割し、分割回数毎に所要時間を表示して確認します。

プログラム例:

$str = “aaa,aaa,aaa・・・”;
$start = getMicrotime();
$result = explode(‘.’, $str):
$end = getMicrotime();
echo ‘所要時間 : ’ . ($end – $start) . ‘<br>’
echo ‘メモリ量 : ’ . memory_get_peak_usage();

preg_splitも同様に確認を行います。

 

検証結果

分割回数:1万回 (10回平均)

explode

所要時間:0.0014 秒

メモリ量:1445352 B

preg_split

所要時間:0.0019 秒

メモリ量:1445296 B

 

分割回数:10万回 (10回平均)

explode

所要時間:0.0138 秒

メモリ量:11254056 B

preg_split

所要時間:0.0210 秒

メモリ量:11254056 B

 

考察

半分とまではいかないですがpreg_splitよりexplodeの方が70%位は所要時間が少ないようです。

今回、そこそこのスペックのPCで検証したので、試行回数が多い場合でもほとんど影響のない時間となっていますが、一回の処理ならばまだしも、アクセス量によっては総数として10万回では済まない場合は多々あるので、気をつけるならば単純な分割はexplodeを利用したほうが良さそうです。

ad_right_top

関連記事

blog_logo_small

phpフレームワーク — Laravelのご紹介

webサービスの構築をおこなうにあたり、どのような言語/ミドルウェアを利用するかは作成するサービスの

記事を読む

blog_logo_small

intl PEC のインストール

MediaWikiの利用において「intl pecl 拡張機能」を使用する場合はインストールが必要で

記事を読む

blog_logo_small

php:GD画像ライブラリのインストール

MediaWikiを利用する上で、画像のサムネイル表示を使う場合はインストールが必要となります。

記事を読む

blog_logo_small

php:ファイルの更新日時を取得し、クエリとして付与する

cssやjsを更新した際に、キャッシュされてしまい表示が更新されないという事が良くあると思います。更

記事を読む

blog_logo_small

php:for文の終了条件には複雑な処理を書かない

php で for文を使ってループ処理をするときの注意書きです。 for文の構造は下記のような

記事を読む

blog_logo_small

php:配列の要素を連結して文字列出力[implode]

ログ出力などで配列の中身を出力したい場合に、簡単に配列を連結して文字列化する方法です。 &nb

記事を読む

blog_logo_small

php:文字列内で対象が現れる場所を見つける[strpos]など

文字列内の部分文字列検索。用途に合わせて色々と関数が用意されているので記憶の片隅に置いておくと良いか

記事を読む

blog_logo_small

Laravel:artisanを利用したコマンドライン実行

定期的にデータの更新が必要な場合などにphpで記述した処理を実行したい時もあるかと思います。メンテナ

記事を読む

blog_logo_small

php:バージョンの確認方法

インストールされているphpのバージョンを確認する方法です。   コマンドで確認す

記事を読む

blog_logo_small

phpでRSSを取得して読み込む方法

ブログなどで新着記事の配信に利用されているRSSをphpで読み込んで表示する方法について掲載します。

記事を読む

google以外広告

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

ad_right_top

linux-pen
【cron】秒間隔で定期実行する為の設定方法

コマンドを定期実行させたい場合に利用するcronですが、普通に利用する

blog_logo_small
【Apache】 ReverseProxy(リバースプロキシ)を設定してサブディレクトで別サーバーの内容を表示

今回はApacheのリバースプロキシ設定について紹介したいと思います。

blog_logo_small
【Apache】 Aliasを設定してサブディレクトでDocumentRoot以外を参照する

今回はApacheのAlias設定について紹介したいと思います。この方

no image
2015:新年のご挨拶

明けましておめでとうございます。 昨年はたくさんの方々に当ブログ

blog_logo_small
MySQL:外部ホストからのDBアクセス方法

MySQLではデフォルトで外部ホストからのアクセスを許可していないので

→もっと見る

  • アクセスカウンター
PAGE TOP ↑