java提高机器学习Rest服务性能
我在tomcat 7上运行了一个rest服务,它正在执行以下操作:
- 语言检测
- 斯坦福大学
- 斯坦福情绪分析
- 情绪分类
- 分类
- 总结
- 主题
您可以猜到,在一个请求中会发生很多事情。 我想提高rest服务的性能,Stanford NER和Stanford Condition占用了太多CPU,在tomcat上有15 GB RAM的6核机器上,我得到了80%的CPU利用率,有10个线程,吞吐量为125。我已经用JMeter测试过了。瓶颈是Stanford,它在每个事务中占用90%的所需时间。我无法在现实世界中衡量这一点。这太慢了。有没有办法扩展我的ML服务
# 1 楼答案
你试过使用Shift-Reduce parser吗?所花费的大量时间可能来自选区解析器(由情绪模型引入),这是一种针对句子长度的
O(n^3)
算法。shift-reduce解析器占用的内存更大,但实际上是O(n)
。否则,我们可能需要更细粒度的分析数据来提供帮助# 2 楼答案
真正的罪魁祸首是深入学习4J。它占用了大部分CPU