Jsprit spending a lot of time in Class.getSimpleName()

Hi all.
I noticed that Jsprit is spending a lot of time in Class.getSimpleName(), as shown in the following stacktrace

"pool-9-thread-2" id=48 state=RUNNABLE
    at java.lang.Class.getEnclosingMethod0(Native Method)
    at java.lang.Class.getEnclosingMethodInfo(Class.java:1072)
    at java.lang.Class.getEnclosingClass(Class.java:1272)
    at java.lang.Class.getSimpleBinaryName(Class.java:1443)
    at java.lang.Class.getSimpleName(Class.java:1309)
    at com.graphhopper.jsprit.core.algorithm.recreate.AbstractInsertionCalculator.fulfilled(AbstractInsertionCalculator.java:71)
    at com.graphhopper.jsprit.core.algorithm.recreate.ShipmentInsertionCalculator.getInsertionData(ShipmentInsertionCalculator.java:194)
    at com.graphhopper.jsprit.core.algorithm.recreate.JobCalculatorSwitcher.getInsertionData(JobCalculatorSwitcher.java:40)
    at com.graphhopper.jsprit.core.algorithm.recreate.VehicleTypeDependentJobInsertionCalculator.getInsertionData(VehicleTypeDependentJobInsertionCalculator.java:97)
    at com.graphhopper.jsprit.core.algorithm.recreate.InsertionDataUpdater.update(InsertionDataUpdater.java:45)
    at com.graphhopper.jsprit.core.algorithm.recreate.RegretInsertionConcurrentFast$2.call(RegretInsertionConcurrentFast.java:225)
    at com.graphhopper.jsprit.core.algorithm.recreate.RegretInsertionConcurrentFast$2.call(RegretInsertionConcurrentFast.java:222)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
    at java.lang.Thread.run(Thread.java:748)

I didn’t have time to run this under a profiler, but I have 6 worker threads running basically the same code.
I also didn’t delve into it, but it seems that’s something that could be cached.

WDYT?

See https://github.com/graphhopper/jsprit/pull/429 :slight_smile:

I believe this PR https://github.com/graphhopper/jsprit/pull/429 addresses the issue, and has been reimplemented in master 3 days ago. Not sure when next release will be

1 Like

Ah! Ok, I switched to 1.8-SANPSHOT for now, then.
Thanks!