Java 应用程序引擎:内存是如何工作的?(与应用程序引擎一起使用Mahout)

Java 应用程序引擎:内存是如何工作的?(与应用程序引擎一起使用Mahout),java,google-app-engine,memory-management,memcached,mahout-recommender,Java,Google App Engine,Memory Management,Memcached,Mahout Recommender,我正在尝试将Mahout与应用程序引擎一起使用。出现了一些问题,但我现在的主要问题是:如果模型太大而无法保存在内存中,我如何提出建议 我使用的是memcache,但是Mahout数据模型在默认情况下是不可序列化的。我正在序列化FastIDSet,但是当我必须提出建议时,我必须从memcache中获取FastIDSet,将其用作推荐程序的参数,然后提出建议 这很好,但将两者都保留在内存中会导致堆空间错误,即使我的数据库不是太大(19MB) 我不能分块做这件事,因为Mahout确实希望用完整的数据模

我正在尝试将Mahout与应用程序引擎一起使用。出现了一些问题,但我现在的主要问题是:如果模型太大而无法保存在内存中,我如何提出建议

我使用的是memcache,但是Mahout数据模型在默认情况下是不可序列化的。我正在序列化FastIDSet,但是当我必须提出建议时,我必须从memcache中获取FastIDSet,将其用作推荐程序的参数,然后提出建议

这很好,但将两者都保留在内存中会导致堆空间错误,即使我的数据库不是太大(19MB)

我不能分块做这件事,因为Mahout确实希望用完整的数据模型初始化

有人有过这个问题的经验吗


谢谢,祝您愉快。

我想好了,必须在appengine-web.xml中设置缩放比例


如果我不得不太频繁地从fastIDSET重建模型,仍在考虑推荐者的速度。

您正在使用一些旧的、正在贬值的技术。新的Mahout关联引擎,称为SimilarityAnalysis.coccurrence,用于Apache 2许可下的端到端推荐程序中。查看,它基于Spark Mahout的工作,并使用搜索引擎提供建议

顺便说一句,我是一名Mahout提交人,致力于此,并不是无缘无故地贬低Mahout的老推荐人:-)