为500个用户基于n个特征进行交叉引用计算的良好服务器设置

我在编写一个小脚本,用于在用户之间引用数据。每个用户对“特征”都有一个特定的计数。例如,特征A是(悲伤,快乐,生气),特征B是(晴天,多云,雷雨)。这些特征的当前总行数为200,000,涉及1000个用户。算法很简单:对于每个用户,计算特征,计算每个特征中最高的条目(A -> 悲伤,B -> 雷雨),并将其作为用户总特征计数的百分比。我现在得到的是一个用户的“评级”,我将其与数据库中的所有用户进行比较(是的,通过再次重复这个过程)。基于假设所有用户的最高特征 + 最高特征 + 最高特征等,与所有用户进行比较,可以得出用户之间的某种相对相似性。

问题是,我在Linode的4核Xen实例上使用PHP来做这件事。速度不是很快。目前最大限度地使用了一个核心,另一个核心使用了30%,其余的则处于闲置状态。脚本可以优化,但我真的想弄清楚如何设置以使其运行得更快。我需要什么样的架构来实现这一点?

我知道这是一个非常广泛的问题,但我希望有人能给我一些指导。任何帮助都将不胜感激!

此致,

Reinder


回答:

我发现罪魁祸首是mysqli->fetch_assoc(),它在等待硬盘为PHP提供额外资源。我通过一次性从数据库中获取所有结果,然后再进行处理,而不是逐一获取和处理,使过程变得更快。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注