Arangodb foxx应用性能不佳

我有自定义foxx应用程序的严重问题。

关于应用程序

该应用程序是用于在图中查找path的定制algorithm。 它为公共交通进行了优化。 在初始化时,它将所有必要的数据加载到JavaScriptvariables中,然后遍历它们。 它更快,然后访问数据库每次。

问题

当我第一次通过api访问应用程序时,它是快速的,例如。 300毫秒。 但是当我第二次做完全相同的请求时,速度慢。 例如。 7000ms。

你能帮我吗? 我不知道在哪里寻找错误。

不知道更多关于应用程序和代码,我只能推测原因。

潜在的原因#1:发展模式。

如果您在开发模式下运行ArangoDB,则会为每个Foxx路由请求运行init过程,从而无法预先计算值。 通过检查arangod日志,你可以发现你是否在开发模式下运行。 如果您处于开发模式,将会有一个日志消息。

潜在的原因#2:JavaScriptvariables是每个线程

你可以使用multithreading运行ArangoDB,从而运行Foxx,每个线程都具有线程本地JavaScriptvariables。 如果您向Foxx路由发出请求,则服务器将select一个随机线程来回答请求。 如果JavaScriptvariables在这个线程中仍然是空的,那么可能需要先填充(这将是你的init调用)。 对于下一个请求,再次挑选一个随机线程执行。 如果JavaScriptvariables已经被填充在这个线程中,那么响应将会很快。 如果variables需要填充,那么响应会很慢。

经过几次请求(至less与在–server.threads启动选项中configuration的一样多),每个线程中的JavaScriptvariables应该已经被初始化,并且响应时间应该是相同的。