Ionic framework 离子2/3-垃圾收集
我试图更好地理解Ionic framework 离子2/3-垃圾收集,ionic-framework,ionic2,garbage-collection,ionic3,Ionic Framework,Ionic2,Garbage Collection,Ionic3,我试图更好地理解ionic2和ionic3 在爱奥尼亚,垃圾收集是如何工作的 缓存什么以及何时缓存 我们如何清除这个缓存 我们如何为G.C.设置元素 我们甚至需要为G.C设置元素吗 我们是否需要为G.C.设置页面 如图()所示: 当转到新页时,一些内存会被G.C.d。但是,内存仍然明显高于播放任何视频之前的内存。好的,我想试试这个: Ionic本身与GC没有太多关系,您身后没有清理任务的计划运行。爱奥尼亚(或者更具体地说,爱奥尼亚背后的开发团队)必须做的唯一一件事就是设计和实现他们的UI
ionic2
和ionic3
在爱奥尼亚,垃圾收集是如何工作的
- 缓存什么以及何时缓存
- 我们如何清除这个缓存
- 我们如何为G.C.设置元素
- 我们甚至需要为G.C设置元素吗
- 我们是否需要为G.C.设置页面
当转到新页时,一些内存会被G.C.d。但是,内存仍然明显高于播放任何视频之前的内存。好的,我想试试这个:
- Ionic本身与GC没有太多关系,您身后没有清理任务的计划运行。爱奥尼亚(或者更具体地说,爱奥尼亚背后的开发团队)必须做的唯一一件事就是设计和实现他们的UI组件,这样它们就不会占用太多内存,也不会占用未使用的内存。特别是在虚拟滚动中,出现了内存泄漏等问题
- 让我们更深入一层:角度!和爱奥尼亚一样。Angular的开发人员负责他们的框架使用了多少内存。但是Angular提供了一种非常有用的方法
。作为一名应用程序开发人员,为什么这种方法对您很重要?因为它给了你清理自己的机会。在组件销毁之前调用此方法,这意味着什么?您不再需要分配的对象、数组、视频元素(设置ngondestory()
,然后调用src='
)等,您可以释放内存。并且是关于如何释放内存的好读物。但是,对于load()
而言,您只需释放未被automic GC清理的内存(订阅、媒体元素等)。这让我们进入了下一个阶段:onDestory()
- Javascript/浏览器:这是“真正的”GC发生的地方。Javascript使用一个标记和清除垃圾收集器(所有现代浏览器都附带一个),您可以了解它。它时不时地运行,并释放每个无法访问/不再引用的对象,以便使用
关键字显式标记一个对象以供GC使用。下图显示了标记和扫描过程:delete
- 当然,您总是使用Java/Obj-C的本机GC来清理应用程序的本机部分