0

現在、foreach ループに入ろうとしていて、API から表示されるものを取得しようとしています - 唯一の問題は、3 つの開発サーバーがあり、スクリプトを実行しているときに、表示が非常に遅いように見えることがあります。それらを反復処理する情報、それがスクリプトなのかサーバーなのかよくわからないので、このスクリプトをクリーンアップまたは少し速くする方法があるかどうか疑問に思っていました:

 foreach ($members as $member)
 {
      $level = $member['character']['level'];

      if($level==90)
      {
           $mname = $member['character']['name'];
           $character = $armory->getCharacter($mname);
           $gear = $character->getGear();
           $milevel = $gear['averageItemLevelEquipped'];
      }
 }

私たちがやりたいことは、すべてのメンバーの名前を取得してから、各メンバーのキャラクター情報とその装備を取得することです.メンバー。

ありがとう

4

1 に答える 1

1

(私のコメントを適切なチェック、編集、コメントなどの回答に変える...)

ループに明らかに問題はありません。

最初のステップは、コードをプロファイリングして、どのビットが遅いかを見つけることです。次に、それに対して何をすべきかを理解できます。

これが遅くなる原因である可能性があるといういくつかの推測があります...

  • WoW Armory へのネットワークおよび/またはデータベース アクセス。

getCharacterこれは、ネットワークまたはデータベースへのアクセスを伴うか、getGear物事を大幅に遅くする可能性のある WoW Armory と話していると思います。それがあなたの最も可能性が高い低迷のポイントです。数分間であっても、結果をキャッシュすることを検討してください。このPHP WoW Armory プロジェクトは、あなたのためにそれを行うと主張しています。

  • $members の多くの要素。

レベル 90 のメンバーのリストをすべて自分で反復処理するのではなく、API に要求できれば、API がその検索を行う方法によっては、より効率的になる可能性があります。

でもまずはプロフィール。

于 2012-10-19T01:44:33.553 に答える