ホームページ  >  記事  >  バックエンド開発  >  可能な限り PHP ネイティブ関数を使用しますか?

可能な限り PHP ネイティブ関数を使用しますか?

WBOY
WBOYオリジナル
2016-08-08 09:32:581093ブラウズ

今日kohanaのソースコードのArrクラスを読んでいたらこんな関数を発見しました

リーリー リーリー リーリー リーリー

ネイティブ関数とカスタム関数をそれぞれ使用してテストしたところ、0 から 1000000 までの 3 の倍数をすべて生成すると、結果は予想を超えていました。

最初はネイティブ関数を使用した結果です:

カスタム関数を使用した結果は次のとおりです:

結果をより正確にするために、グラフと統計を作成しています

統計の数ネイティブ関数 range()カスタム function_range()(0,1000000,3)5.155E-3s27.5530M1.907E-5s0.1241M(0,1000000,2)7.479E-3s40.2688M1.811E-5s0.1241M(0,1000,1)8.16E-5秒0.1620M2.649E-5s0.1241M
表から、乱数を生成する場合、カスタム関数はネイティブ関数よりもメモリと時間を節約することがわかります。さらに、ネイティブ関数は大量の乱数を生成するときに多くのメモリと時間を消費しますが、カスタム関数は効率が低くなります。この点に関しては、パフォーマンスは良好で、生成されるメモリと消費時間は基本的に安定しています。前の先輩が言ったことは完全に正しいわけではないようですが、ここでのカスタム関数は数値しか生成できないことに注意してください。ネイティブ範囲でも文字を生成できますが、このカスタム関数を使用して文字を追加するのはそれほど難しくないと思います~

Kohana 公式は、PHP カーネルの range 関数とこの関数の複雑さをよく理解しているようです。だからこそ、この小さな最適化がこれほどうまくできるのです。 ! !

送ってください~

以上、PHPのネイティブ機能を最大限に活用する方法を紹介しました。 、関連コンテンツも含めて、PHP チュートリアルに興味のある友人に役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。