我在本地使用Graphhopper
来获取两个纬度/经度之间的行驶方向。一切都很好,当我只加载了一个国家的数据时,我在不到100ms的时间内就得到了结果。现在我已经将数据集加载到Asia
,但结果变得太慢(在某些情况下超过10秒)。现在,对于一些路由,我得到了这个错误:
ERROR com.graphhopper.http.GHErrorHandler - GC overhead limit exceeded,
java.lang.OutOfMemoryError: GC overhead limit exceeded
我的目标是加载所有的世界数据,并在不到1秒的时间内得到结果。我可以做什么性能优化来实现这个目标?目前我使用的是带有8 GB RAM
的系统。如果需要优化性能,我愿意增加RAM。
发布于 2016-07-12 08:14:21
“超出GC开销限制”的消息意味着JVM花费了大部分时间进行垃圾收集。这通常意味着堆已接近满。
有两种方法可以解决这个问题:
你可以增加
最终,任何将大型数据集加载到内存中的应用程序在扩展到超出可用的物理RAM数量时都会遇到问题。
https://stackoverflow.com/questions/38323208
复制相似问题