• 【百度地图API】今日小年大进步,齐头共进贺佳节——API优化升级上线,不再增加内存消耗


    任务描述:

      今天是2011年01月26日,小年夜。百度地图API在小年夜献给广大API爱好者一份给力的礼物!那就是,百度地图API内存消耗优化升级了!

      此次API优化升级后,内存消耗保持平稳,绝大部分测试中,内存消耗趋于一条直线。(如图所示)

     

    如何实现:

      a)         本次测试全部采用IE6浏览器;

    b)         本次测试的覆盖物全部采取随机方式创建;

    c)         本次测试覆盖物种类分别为:信息窗口、标注、圆形、多边形、折线、标签;

    d)         依次连续不间断做以上测试,不穿插其他测试;

    e)         测试时间均为每1毫秒执行一次创建;

    f)          测试期间,不新建其他进程。

     

    图示:

      

     

    说明:

      优化前,内存消耗以50,000为起点,不断上升,造成运行速度慢等问题;

      优化后,内存消耗一直保持在50,000左右,趋于平稳的直线。

     

    运行代码,请点击以下链接:

      marker测试用例:http://ui-love.com/baidumap/markercase.htm

      label测试用例:http://ui-love.com/baidumap/labelcase.htm

      信息窗口w测试用例:http://ui-love.com/baidumap/infowincase.htm
      多边形测试用例:http://ui-love.com/baidumap/polygoncase.htm

    源代码:  
    (注:由于测试用例过多,这里不一一列举,仅给出标注Marker的测试用例代码。 )

     

    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <title>Marker 性能</title>
    <style type="text/css">/*<![CDATA[*/
    body
    {margin:0;padding:0;font-family:Times New Roman, serif}
    p
    {margin:0;padding:0}
    #wrapper
    {width:100%;margin:auto;text-align:left;height:100%}
    #map_container
    {height:480px;margin:0}
    #notes
    {position:absolute;right:10px;width:200px;top:10px}

    @media print
    {
    input{display
    :none}
    #notes
    {display:none}
    #map_container
    {margin:10px;border:none}
    }
    /*]]>*/</style>
    <script type="text/javascript" src="http://api.map.baidu.com/api?key=25f144bb4491f54b83a7a7b39198c11e&v=1.1&services=true">
    </script>
    </head>

    <body>
    <div id="map_container"></div>
    <div id="test_container">
    <input type="button" onclick="test_mem()" value="mem_test" />
    <input type="button" onclick="stop_mem()" value="stop_test" />
    </div>
    </div>

    </body>
    <script type="text/javascript">
    if (typeof console == "undefined"){
    window.console
    = {
    log:
    function(){
    }
    }
    }
    </script>
    <script type="text/javascript">
    // 创建地图对象并初始化
    var mp = new BMap.Map("map_container");
    var point = new BMap.Point(116.404, 39.915);
    mp.centerAndZoom(point,
    14);

    // 内存性能测试
    var count = 0;

    function createInfo() {
    mp.clearOverlays();
    if (count > 3000) {
    clearInterval(window._timer);
    alert(
    "测试结束");
    }
    createMarkers();
    }
    function createMarkers(){
    var bounds = mp.getBounds();
    var lngSpan = bounds.maxX - bounds.minX;
    var latSpan = bounds.maxY - bounds.minY;
    for (var i = 0; i < 9; i ++) {
    count
    ++;
    var point = new BMap.Point(bounds.minX + lngSpan * (Math.random() * 0.7 + 0.15),
    bounds.minY
    + latSpan * (Math.random() * 0.7 + 0.15));
    var marker = new BMap.Marker(point);
    mp.addOverlay(marker);
    }
    }
    function test_mem() {
    window._timer
    = setInterval(createInfo, 1);
    }
    function stop_mem() {
    clearInterval(window._timer);
    alert(
    "运行了"+count+"");
    }
    </script>
    </html>
  • 相关阅读:
    模板为webpack的目录结构
    实例和内置组件
    微信小程序之富文本解析
    微信小程序获取输入框(input)内容
    for循环的语法和执行顺序
    循环
    选择结构(二)
    选择结构
    算术运算
    变量
  • 原文地址:https://www.cnblogs.com/milkmap/p/1945450.html
Copyright © 2020-2023  润新知