在我的小程序里,我一直在regionchange里更新小程序map组件的markers,controls,和polyline。
但打开性能监控面板的时候,发现每次调用regionchange内存有增长不少,让我怀疑是不是因为map组件更新controls和polyline数组的时候有产生内存泄漏因为markers用同样的逻辑是没有内存增长的,而且这些问题在iOS上是没有看到的。
在wxml里的map初始化:
< map ... controls="{{map.controls}}" polyline = "{{map.polyline}}" markers = "{{map.markers}}" ... /> |
在js文档里的处理逻辑:
...
map: { polyline: ..., markers: ..., controls: ... } |
}, updateMarkers: function() { nmarkers = [...] this.setData({ 'map.markers': nmarkers }) }, updateControls: function() { ncontrols = [...] this.setData({ 'map.controls': ncontrols }) } |
在这个例子里,安卓updateControls会产生内存增长,但updateMarkers不会。有没有人知道为什么?
**会不会跟markers和controls的数据结构有关?因为markers是2D的 list(obj) 但controls是3D的 list(obj(obj)). Polyline 也是3D的 list(obj(list))。如果真的是这个原因又要怎么解决呢?