Hi, <br>I did some multithreading performance tests using C# mapscript (We&#39;ve discussed about safety and performance before)<br><br>I have run 200 threads running simultanously and performing actions like: create mapObject, zoom, pan, query, draw, etc<br>
Testing application environment:<br>-4processors server (Intel Xeon E5320)<br>-Win2003EE+SP3<br>-4GM RAM<br>-MapScript 5.1-DEV from <a href="http://www.coordinatesolutions.com/download/ASPNET20Sample_50.zip">http://www.coordinatesolutions.com/download/ASPNET20Sample_50.zip</a><br>
-1GB data in shapefiles on RAID<br><br>I expected performance problems with parsing mapfile (static variables, locks). But there were no problems with it. <br>During parsing mapfile by 200 threads processors was used in 98-100%. So it is perfect result.<br>
But, I find problem probably with draw method. Each thread was executing methods on its own map object like:<br>drawLegend, drawScalebar, queryByAttributes, zoomPoint, setExtent, Draw. <br>During running test application, and executing those methods, processors was used in 25-35% ONLY (25% - one processor).<br>
Its very poor result. I guess that problem may be related with using locks in drawing process{ imageObj img = map.draw() }, which takes much more time than other mapObject methods. <br><br>How to improve performance? It is hard to fix it?<br>
<br>Regards,<br>Adrian Kruk,<br>infovidematrix.pl<br>