0

ユーザー間でデータを参照する小さなスクリプトに取り組んでいます。各ユーザーには、「機能」の特定のカウントがあります。たとえば、機能Aは(悲しい、幸せ、怒り)であり、機能Bは(晴れ、曇り、雷)です。これらの機能の現在の行数は、1000ユーザーに対して合計で200.000です。アルゴリズムは単純です。ユーザーごとに機能をカウントし、機能ごとに最も高いエントリ(A->悲しい、B->雷)を計算し、ユーザーごとの機能の総数のパーセンテージにします。私が今得たのは、ユーザーの「評価」であり、これをデータベース内のすべてのユーザーと比較します(そうです、それをもう一度やり直すことによって)。すべてのユーザーと比較して、すべてのユーザーの最高の機能+最高の機能+最高の機能などが、ユーザー間にある種の相対的な類似性を与えるという仮定に基づいています。

問題は、Linodeの4コアXenインスタンスでPHPを使用してこれを行っていることです。それほど速くはありません。現在、1つのコアを最大化し、もう1つを30%で最大化し、残りはアイドル状態になっています。スクリプトは最適化できますが、セットアップを高速化する方法を本当に理解したいと思います。これにはどのようなアーキテクチャが必要ですか?

それは非常に幅広い質問だと思いますが、誰かが私にいくつかの指針を教えてくれることを願っています。どんな助けでも大歓迎です!

敬具、

リインダー

4

1 に答える 1

0

原因はmysqli->fetch_assoc()であり、ハードディスクがPHPに追加のリソースを提供するのを待っていることがわかりました。1つずつフェッチするプロセスメカニズムではなく、データベースからすべての結果を一度にフェッチしてから処理することで、プロセスを高速化しました。

于 2012-12-18T08:33:39.980 に答える