Arangodb foxx-应用性能不佳

时间:2014-04-10 11:07:00

标签: node.js arangodb

我对自定义foxx应用程序存在严重问题。

关于应用

该应用程序是用于在图中查找路径的自定义算法。它针对公共交通进行了优化。在init上,它将所有必要的数据加载到javascript变量中,然后遍历它们。它比每次访问数据库更快。

问题

当我第一次通过API访问应用程序时,它很快,例如。 300毫秒。但是当我第二次做同样的请求时,非常慢。例如。 7000ms。

你能帮我解决这个问题吗?我不知道在哪里寻找bug。

1 个答案:

答案 0 :(得分:6)

不了解有关该应用的更多信息代码,我只能推测原因。

潜在原因#1:开发模式。

如果您在开发模式下运行ArangoDB,则会为每个Foxx路由请求运行init过程,从而使预先计算的值无效。 您可以通过检查arangod日志来发现您是否在开发模式下运行。如果您处于开发模式,则会显示相关的日志消息。

潜在原因#2:JavaScript变量是每个线程

你可以使用多个线程运行ArangoDB,从而运行Foxx,每个线程都有线程局部的JavaScript变量。如果您向Foxx路由发出请求,则服务器将选择一个随机线程来回答该请求。 如果此变量中的JavaScript变量仍为空,则可能需要首先填充它(这将是您的初始化调用)。 对于下一个请求,将再次挑选随机线程以供执行。如果已在此线程中填充JavaScript变量,则响应将很快。如果需要填充变量,则响应将很慢。

在几个请求(至少与--server.threads启动选项中配置的数量)之后,每个线程中的JavaScript变量应该已经初始化,响应时间应该相同。