Я работаю с Mahout создать механизм рекомендаций на основе следующих данных:Mahout вопросы эффективности Рекомендации
- 100k пользователи
- 10k элементах рейтингов
- оГО
Я m работает на Tomcat со следующими аргументами JVM:
-Xms1024M -Xmx1024M -da -dsa -XX:NewRatio=9 -server
Рекомендации заняли около 6 секунд, это кажется медленным! Как я мог улучшить выступления Махута?
Я использую следующий код:
Эта часть запускается один раз при запуске:
JDBCDataModel jdbcdatamodel = new MySQLJDBCDataModel(dataSource);
dataModel = new ReloadFromJDBCDataModel(jdbcdatamodel);
ItemSimilarity similarity = new CachingItemSimilarity(new EuclideanDistanceSimilarity(model), model);
SamplingCandidateItemsStrategy strategy = new SamplingCandidateItemsStrategy(10, 5);
recommender = new CachingRecommender(new GenericItemBasedRecommender(model, similarity, strategy, strategy));
И для каждого запроса пользователя, что я делаю:
recommender.recommend(userId, howMany);
Узкое место доступа к базе данных –
@JulianOrtega 'ReloadFromJDBCDataModel' загружает datamodel из базы данных в память, так что это занимает время только один раз, или я чего-то не хватает? – Thibaud
Ну, так как вы действительно не делились кодом, который генерирует рекомендации, я должен был угадать –