接着继续心得,第四个原因经过代码走查,调试代码一步一步的跟踪调试发现不存在临时变量无法释放的问题。所以排除了因为在update的时候出现没有释放的临时变量。
最后经过摸索和通过排除法进行一一的排除对首先对QuadTileSet.cs文件的init update render等方法和内部方法体一一的删除最后发现在update里面的一下代码的执行严重的影像了
经过调试qt.update发现进入QuadTile.cs文件执行update的时候会卡
继续跟踪代码发现执行到
这个的时候文件加载会很频繁加载速度也会很慢我就又再次考虑了是不是512*512的问题。后来发现会对程序产生影响但是问题不大。所以也不是这一块的问题。
然后我又改变思是不是一次加载切片过多,数据调度范围过大,或者我电脑的屏幕分辨率过大的原因。
首先我修改了我的电脑的分辨率调整为1024*768 修改过后系统的数据调度速度提升了不少但是还是会卡大概在三秒钟左右,但是比起一开始卡的拖不动的情况我已经很满足了
然后我又找到了计算数据切片加载范围的地图看看能否通过缩小数据加载范围来再次提升瓦片数据调度的速度。
首先我又打开QuadTileSet.cs文件
修改了上图中实例化方法中的红箭头标出的部分的阀值。然后再次运行程序,秒级加载。虽然有一秒钟的顿卡现象但是对于目前的系统状态我已经很满足了。后面也只有通过修改切片大小优化切片数据和缓存策略吧这一秒钟优化为毫秒级别