我在本地使用Graphhopper
获取两个纬度/经度之间的行车方向。一切都很好,当我只为一个国家装载数据时,我在不到100ms的时间内获得了结果。现在我已经将数据集加载到了Asia
,结果变得太慢了(有些情况下超过了10秒)。而现在的一些途径我得到这个错误:错误com.graphhopper.http.GHErrorHandler - 超出GC开销限制
ERROR com.graphhopper.http.GHErrorHandler - GC overhead limit exceeded,
java.lang.OutOfMemoryError: GC overhead limit exceeded
我的目标是加载所有的世界的数据,并在不到1秒得到结果。我可以通过哪些性能优化来实现这一目标? 目前我使用的系统是8 GB RAM
。如果需要优化性能,我打算增加内存。
您拥有哪个数据访问设置,创建的graphhopper文件夹有多大(或发布了完整的config.properties)。对于JVM的Xmx&Xms设置,使用此大小+ 10%。 – Karussell
例如如果你想快速的结果,那么你应该**不**使用内存映射设置(MMAP_SYNC_STORE) – Karussell
嘿谢谢你的回应。增加Xmx和Xms确实有帮助。那么大概需要多少物理内存来处理全世界的数据呢?这种情况下推荐的设置是什么? – Rahul