0

处理一个在用户之间引用数据的小脚本。每个用户对“功能”都有一定的计数。例如,特征 A 是(悲伤、快乐、愤怒),特征 B 是(晴天、阴天、雷声)。对于 1000 个用户,这些功能的当前行数总计为 200.000。该算法很简单:对于每个用户,计算特征,计算每个特征哪个条目最高(A -> sad,B -> Thunder),并将其作为每个用户特征总数的百分比。我现在得到的是一个用户的“评级”,我将它与数据库中的所有用户进行比较(是的,通过再次这样做)。基于所有用户的最高特征+最高特征+最高特征等的假设,与所有用户相比,用户之间具有某种相对相似性。

问题是,我在 Linode 的 4 核 Xen 实例上使用 PHP 执行此操作。它不是很快。当前最大化一个核心,另一个为 30%,其余的处于空闲状态。脚本可以优化,但我真的很想弄清楚如何进行设置以使其更快。我需要什么样的架构?

我可以看到这是一个非常广泛的问题,但我希望有人能给我一些指示。任何帮助是极大的赞赏!

亲切的问候,

莱德

4

1 回答 1

0

我发现罪魁祸首是mysqli->fetch_assoc(),等待硬盘为PHP提供额外的资源。我一次性从数据库中获取所有结果,然后处理它们,而不是一个一个的获取过程机制,从而加快了这个过程。

于 2012-12-18T08:33:39.980 回答