我正在使用GoogleMapsV2。我有大约10000个集群项目,我批量添加到ClusterManager(ClusterManager.addItems(Collection)。
我的问题是群集和去群集过程滞后且缓慢。我相信大约有1万件物品不应该那么慢。在OnePlus3上测试(6GB或ram)因此不是手机。
以下是活动中的群集关联代码:
import pandas as pd
df = pd.DataFrame(...)
df
COL1 ....
0 b'entry1' ...
1 b'entry2'
2 b'entry3'
3 b'entry4'
4 b'entry5'
5 b'entry6'
我查看了ClusterRenderer,我没有在onBeforeClusterItemRendered()和onBeforeClusterRendered()中执行任何大型操作。 看起来应用程序在进行群集时比在去群集时慢得多,但这也可能是因为群集通常在更小的缩放级别上完成,因此会显示更多的标记。
我的android监视器显示聚类过程改变了内存和CPU而不是GPU,所以这不是图形问题。
我试过的解决方案: 像描述here那样进行动态集群渲染。在这种情况下,您遍历标记列表并查看哪些在Viewport边界中,因此您只显示这些标记。这使整个事情变得更糟,因为每次onCameraIdle被调用时我都必须遍历所有10 000个标记。
任何想法从哪里开始优化此问题?
答案 0 :(得分:1)
你在其他地方使用console.log
吗?如果没有,您可以通过以下方式重构代码:
rentMarkerList
因此,您不会创建额外的标记列表,也不能同时添加所有标记,但请逐个添加。
您还可以使用简单的for循环来补充foreach循环。根据这个Android performance patterns episode,它的工作速度更快。
我认为这不会显着改善性能,只是一点点优化提示,这可能有所帮助。
答案 1 :(得分:0)
在ios上使用30K标记散乱后,我刚刚放弃了Google集群管理器,它的性能非常差且根本无法扩展。还有很多其他免费的集群库,只需删除google-utiils。
我已将其交换为ClusterKit-可行! https://github.com/hulab/ClusterKit-(iOS)