ThinkGeo.com    |     Documentation    |     Premium Support

Freezing UI when opening large SHAPE files

Hi support



When opening large SHAPE files (70MB and above) with ThinkGeo.MapSuite.WpfDesktopEditioncontrol (version 9.0.0.180) we observe application UI freezing for 6-8 seconds.

Test PC configuration: i7-4790K, 4Ghz, 8 cores, 8GByte RAM, SSD HDD

OS: 64bit Windows 8



Note: This observed only with SHAPE files and does not happen for large image or, for example, CAD-files.



This is strange, since according to my information, parsing of the Shape file performed in separate worker thread and thus should not affect main UI thread of the application.



Profiling shows, that most of CPU utilization happens in garbage collector routines (GC) - see attached screenshot of the stack trace.

Thus i come to conclusion that parsing large SHAPE file implemented with high pressure on the garbage collector. Since GC works exclusively on main thread, freezing all other application activities, that may explain freezing of the UI.



In order improve application responsiveness, i tried to change GCColletionMode to optimized:



wpfMap.GCCollectionMode = GCCollectionMode.Optimized;



though without noticeable effect.



Question:


        
  • How can i avoid application freezing when opening large SHAPE files?

  •     
  • If my speculation about GC role in these freezings is correct, how can i decrease GC pressure and thus avoid UI freeze?




Thanks in advance and Happy New Year! 



Best regards, Alex

Hi Alex, 
  
 That’s strange, because we won’t load all data in shape file into memory at the first time. 
  
 Could you please review your code and data to see whether your shape file had been created the index file, and have you used the index file in your code? It there is a index file there, please also rebuild it first. 
  
 Regards, 
  
 Don

Hi Don 
  
 thanks for reply. OK, I will check if we use proper index and check result. 
  
 Best regards 
 Alex 
  


Hi Alex, 
  
 Any update please let me know. 
  
 Regards, 
  
 Don

Hi Don 
  
 finally i could test indexed use of the SHAPE files: i still observe freezing UI even though index is used.  
  
 What can try else to improve UX? 
  
 About shape file: we observe slow UI only with certain Shape-files. Particularly, it is contour topographic maps, like this reynolds.asu.edu/topo_gallery/images/poland_jnct_contour.gif (example is from internet, just to give an idea). Sample file size 70 MB. 
  
 When we display city map or building, WpfMap performance is good. 
  


Hi Alexey, 
  
 What’s the type of the contour shape file? Does them lines? Please use shapeFileFeatureSource.GetAllFeatures to know how many items contained in the 70mb shape file. If the number is huge, you need to do some optimize to render them. Please don’t shows too many features in a high zoomlevel. 
  
 You can view our WorldMapKit render, it contains our render logic for the huge shape files, for example entire county roads. 
  
 The other solution is if your shape file won’t be modified frequently, just open cache for this overlay, and it will very fast the 2nd time you open it. 
  
 Regards, 
  
 Don

Hi don 
  
 as solution we will implement tiles cache (as ad-hoc solution) and tile-server as next step. 
 Case is closed. 
  
 br Alex

Hi Alex, 



Thanks for your update, if we get any enhancement after this problem in future we will let you know. 



Regards, 



Don