Google Maps APIのメモリーリーク問題

以下のコードを実行し続けると、少しずつですがメモリーが食いつぶされていきます。なかなかうまい解決方法が見つからなくて困っています。Google Maps APIを利用している、はてなマップでも同様の問題を確認しています。特に、私の実験によると、Internet Explorer 6.0はFirefoxよりもメモリーリークの度合いが大きいようです。

ここで実際に実験ができるようにしてみました。Windowsタスクマネージャでメモリー使用量を監視しながら試してみて下さい。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Memory leak test</title>
    <script src="http://maps.google.com/maps?file=api&v=1&key=****" type="text/javascript"></script>
</head>
<body>
    <div id="msg"></div>
    <div id="map" style="width: 800px; height: 600px"></div>

    <script type="text/javascript">
    //<![CDATA[
    var map = new GMap(document.getElementById("map"));
    map.centerAndZoom(new GPoint(-122.141944, 37.441944), 4);
    
    var bounds = map.getBoundsLatLng();
    var width = bounds.maxX - bounds.minX;
    var height = bounds.maxY - bounds.minY;
    
    i = 0;
    
    function timer_handler() {
        var point = new GPoint(bounds.minX + width * Math.random(),
                                bounds.minY + height * Math.random());
                                
        var marker = new GMarker(point);
        map.addOverlay(marker);
        
        msg = document.getElementById('msg');
        msg.innerHTML = "i = " + i;
        
        if (i % 50 == 0) {
            map.clearOverlays();
        }
        
        i++;
    }
    
    setInterval('timer_handler()', 10);
    //]]>
    </script>
</body>
</html>