ホームページ >バックエンド開発 >PHPチュートリアル >複数のパラメーターまたはコンテキスト オブジェクトを渡すかどうかに関する PHP パフォーマンス テスト_PHP チュートリアル
WeChatパブリックプラットフォームの開発プロセスでは、$userOpenId、$message、$timeなど、常に渡す必要があるパラメータがいくつかあります。
プログラムの実行プロセス全体を通じて、関数処理の便宜上、これら 3 つの変数は常にパラメーター リストに配置されます。この点に関して、Android では常に Context オブジェクトが渡されているのではないかと思いました。これは、プログラム全体の実行ロジックに含まれる、必要なデータの一部が Context に格納されているのではないかと理解しています。
そこで考えたのですが、3つの変数はContextにパッケージ化すべきでしょうか?パフォーマンスに改善はありますか?
PHPの関数パラメータが変数の場合、変数のコピーに直接渡され、オブジェクトに渡される場合は、オブジェクトのポインタに渡されます。つまり、関数内で String が定義および変更された場合、それが戻り値の形式で返されない場合、変数は変更されていませんが、変数のコピーは変更されています。オブジェクトを定義して関数に組み込んで操作すると、オブジェクト自体が直接変更されます。
上記の考え方から、オブジェクトを渡した方が(コピーする必要がないので)早いのではないかと思います。そこで、テストのために次のコードを書きました。
リーリーテスト結果はコメントに書きましたが、単位はms(ミリ秒)です。 Context の転送が少し遅いことがわかります。もちろん、このコンテキストの環境を 1 つのコードで 5,000 回やり取りすることはできず、パフォーマンスの違いがミリ秒単位で非常に小さいことを考慮すると、コンテキスト オブジェクトを使用して必要なパラメーターを渡すことは、より洗練された選択です。