我有一个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时,这一定发生了变化。