Google 折线占用内存高?
Google polyline high memory useage?
每秒调用以下函数。目的是更新折线上的最后一个点以跟随标记。问题是,每次代码运行时,浏览器(CefSharp)的内存使用量不断增加约 1 MB,在短短几分钟内从约 50 MB 增加到 200 MB 以上。
function moveMarker(lat, lon, hdg, followme) {
marker.setPosition(new google.maps.LatLng(lat, lng));
var len = traceLine.getPath().length;
traceLine.getPath().removeAt(len-1);
traceLine.getPath().push(marker.getPosition());
}
通过删除最后三行,内存使用量稳定在 53 MB 左右。
函数 运行 此代码使用以下代码从 C# 调用:
String js = String.Format("moveMarker('{0}','{1}','{2}','{3}');",
lat.ToString(System.Globalization.CultureInfo.InvariantCulture),
lon.ToString(System.Globalization.CultureInfo.InvariantCulture), hdg,
followMeCb.Checked ? "true" : "false");
myChromiumWebBrowser.ExecuteScriptAsync(js);
我是不是做错了什么?
不确定我有什么版本,但它是从 1 月某个时候开始的,所以可能是 45。更新到最新稳定版本的 CefSharp (49.0.0) 似乎已经解决了这个问题。
每秒调用以下函数。目的是更新折线上的最后一个点以跟随标记。问题是,每次代码运行时,浏览器(CefSharp)的内存使用量不断增加约 1 MB,在短短几分钟内从约 50 MB 增加到 200 MB 以上。
function moveMarker(lat, lon, hdg, followme) {
marker.setPosition(new google.maps.LatLng(lat, lng));
var len = traceLine.getPath().length;
traceLine.getPath().removeAt(len-1);
traceLine.getPath().push(marker.getPosition());
}
通过删除最后三行,内存使用量稳定在 53 MB 左右。
函数 运行 此代码使用以下代码从 C# 调用:
String js = String.Format("moveMarker('{0}','{1}','{2}','{3}');",
lat.ToString(System.Globalization.CultureInfo.InvariantCulture),
lon.ToString(System.Globalization.CultureInfo.InvariantCulture), hdg,
followMeCb.Checked ? "true" : "false");
myChromiumWebBrowser.ExecuteScriptAsync(js);
我是不是做错了什么?
不确定我有什么版本,但它是从 1 月某个时候开始的,所以可能是 45。更新到最新稳定版本的 CefSharp (49.0.0) 似乎已经解决了这个问题。