Grails 版本 >= 3 执行对 Oracle Java 网络跟踪 API 的调用时非常慢



我有一个Grails REST应用程序(版本2.5.1),它跟踪道路网络上的路线。该网络作为LOD network托管在Oracle数据库中。这个应用程序的性能非常好,只需几秒钟就能返回一个完整的路由。

我已经尝试将这个应用程序升级到Grails的最新版本(4.0.3)。当追踪路线时,速度慢得可怕(大约20分钟,而不是几秒钟)。代码由服务组成,主要由一个控制器来启动它。没有域类,响应格式为GeoJSON行字符串。

当对NetworkAnalyst进行调用时,速度变慢。

Oracle Network API中的shortestPathDijkstra方法。我已经更新了用于Oracle 19c版本的jar文件,并尝试了JDK 8 &JDK 11,没有任何重大变化。

有没有人知道为什么更改Grails版本会对这段代码的速度产生如此重大的影响?

原来我必须通过调用LODNetworkManager.getCachedNetworkIO()而不是LODNetworkManager.getNetworkIO()来获得NetworkIO对象

与Grails版本无关,但当我更新到Grails 4时,这一定发生了变化。

最新更新