Opened 5 years ago
Last modified 4 years ago
#20703 closed defect
GeographicReader.createOrGetWay is slow due to many Arrays.copyOf — at Initial Version
| Reported by: | simon04 | Owned by: | Don-vip |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | Plugin opendata | Version: | |
| Keywords: | template_report performance profiling intellij yourkit | Cc: |
Description
What steps will reproduce the problem?
- Run profiler while opening https://osmdata.openstreetmap.de/download/simplified-land-polygons-complete-3857.zip
What is the expected result?
What happens instead?
A considerable amount of time is spent in GeographicReader.createOrGetWay is slow due to many Arrays.copyOf
Please provide any additional information below. Attach a screenshot if possible.
java.util.Arrays.copyOf(Object[], int) org.openstreetmap.josm.tools.Utils.addInArrayCopy(Object[], Object) org.openstreetmap.josm.data.osm.Way.addNode(Node) org.openstreetmap.josm.plugins.opendata.core.io.geographic.GeographicReader.createOrGetWay(LineString) org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.processGeometryCollection(GeometryCollection) org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parseFeature(Feature, Component) org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parse(File, ProgressMonitor) org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpReader.parseDataSet(InputStream, File, AbstractDataSetHandler, ProgressMonitor) org.openstreetmap.josm.plugins.opendata.core.io.geographic.ShpImporter.parseDataSet(InputStream, ProgressMonitor) org.openstreetmap.josm.gui.io.importexport.OsmImporter.loadLayer(InputStream, File, String, ProgressMonitor) org.openstreetmap.josm.gui.io.importexport.OsmImporter.importData(InputStream, File, ProgressMonitor) org.openstreetmap.josm.plugins.opendata.core.io.AbstractImporter.importData(File, ProgressMonitor) org.openstreetmap.josm.gui.io.importexport.FileImporter.importDataHandleExceptions(File, ProgressMonitor) org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.importData(FileImporter, List) org.openstreetmap.josm.actions.OpenFileAction$OpenFileTask.realRun() org.openstreetmap.josm.gui.PleaseWaitRunnable.doRealRun() org.openstreetmap.josm.gui.PleaseWaitRunnable.run() java.util.concurrent.Executors$RunnableAdapter.call() java.util.concurrent.FutureTask.run() java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor$Worker) java.util.concurrent.ThreadPoolExecutor$Worker.run() java.lang.Thread.run()
Note:
See TracTickets
for help on using tickets.



