[OpenLayers-Users] Memory Leak in Open Layers 2.12 with Google Maps v3?

Mark Priest mark.priest at computer.org
Wed Jun 12 15:03:12 PDT 2013


I forgot to mention that my results were with Internet Explorer 9.  I
measure the memory usage by reading the Windows process private bytes
counter via WMI.

On Tue, Jun 11, 2013 at 7:49 PM, Mark Priest <mark.priest at computer.org> wrote:
> Hi,
>
> I am relatively new to Open Layers, but I think I am seeing a memory
> leak when using Open Layers 2.12 with google maps v3 as a base map.
>
> I constructed two simple html files/apps which use the google maps v3
> api to provide a base map.  In one file I use the google maps api
> directly.  In the other I use Open Layers and use google maps v3 as
> the base layer.
>
> I created an automated test script (using AutoIT) to do a series of
> mouse actions that cause the map to pan up and down and then left and
> right for 15 minutes.  I applied this test to both html apps and used
> the same screen sizes and map center points.  In my tests I see a leak
> rate of about 100 mb/hr when using google maps v3 alone.  When I use
> Open Layers I see a leak rate of about 2000 mb/hr - or about 20 times
> the rate of google maps alone.
>
> If I use the google maps v2 API I don't see a leak in either google
> maps or Open Layers.
>
> Can someone please confirm if I am seeing an actual leak or if I am
> simply doing something wrong with Open Layers?
>
> Here are the two html apps in full:
>
>
> Google Maps v3 version:
>
> <html>
>   <head>
>     <title>Simple Map</title>
>     <style>
>       html, body, #map-canvas {
>         margin: 0;
>         padding: 0;
>         height: 100%;
>       }
>     </style>
>     <script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false"></script>
>     <script>
>       var map;
>       function initialize() {
>         var mapOptions = {
>           zoom: 16,
>           center: new google.maps.LatLng(42.336898249865152,
> -71.59534692764282),
>           mapTypeId: google.maps.MapTypeId.ROADMAP
>         };
>         map = new google.maps.Map(document.getElementById('map-canvas'),
>             mapOptions);
>       }
>
>       google.maps.event.addDomListener(window, 'load', initialize);
>
>     </script>
>   </head>
>   <body>
>     <div id="map-canvas"></div>
>   </body>
> </html>
>
>
> Open layers Version (assumes that Open Layers 2.12 is in ../lib/OpenLayers.js):
>
> <html>
>     <head>
>     <style>
>       html, body, #map-canvas {
>         margin: 0;
>         padding: 0;
>         height: 100%;
>       }
>     </style>
>     <title>OpenLayers Google (v3) Layer Example</title>
>     <script src="https://maps.googleapis.com/maps/api/js?v=3&sensor=false"></script>
>     <script src="../lib/OpenLayers.js"></script>
>     <script>
>       var map;
>       function initialize() {
>           var mapOptions = {zoom: 16};
>           map = new
> OpenLayers.Map(document.getElementById("map-canvas"), mapOptions);
>
>         var mapLayer = new OpenLayers.Layer.Google( "Google Map",
> {type: google.maps.MapTypeId.ROADMAP} );
>
>           map.addLayers([mapLayer]);
>           map.setCenter(new OpenLayers.LonLat(-71.59534692764282,
> 42.336898249865152).transform(
>             new OpenLayers.Projection("EPSG:4326"),
>             map.getProjectionObject()), 16);
>       }
>     </script>
>     </head>
>    <body onload="initialize()">
>         <div id="map-canvas"></div>
>     </body>
> </html>


More information about the Users mailing list