我今天在互联网上的某处看到了System.gc()
,我想知道它是否被推荐用在Flash CS5项目中,以及为什么。Actionscript内存管理?
回答
在我所知道的每一个垃圾收集系统中,垃圾收集机制都被设计成在后台运行,作为程序员理论上不应该关注的抽象。有一些特殊情况下强制收集是有用的,但这些情况通常涉及中断(真正的机器中断,而不是动作事件),测试/调试场景或一些棘手的延迟管理需求。赔率是你永远不需要调用System.gc(),你可以放心地忽略它。
另外,afaik,它不可能强制gc发布版本,它是全部自动化的,你所能做的就是删除所有不需要的监听器和这类东西。 – Maurycy 2010-11-17 09:25:53
System.gc()仅在调试器版本的Flash Player和某些AIR应用程序中可用。在普通的网站上调用它,在普通的Flash Player下不会有任何效果,并且会默默地失败。
System.gc()仅用于测试目的。
System.gc()仅用于测试目的。监视应用程序正在使用的内存使用情况并调用System.gc()可以很方便,以突出显示任何内存泄漏的可能性。
提示:据我记得你必须两次调用System.gc()来强制它立即收集。
该文档指出,此方法仅适用于调试播放器。
http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/system/System.html#gc()
所以,总结一下,如果你正在测试的内存,这是相当方便的,否则不要使用它。
- 1. 闪存管理和ActionScript
- 2. 内存管理
- 3. 内存管理
- 4. 内存管理
- 5. 内存管理
- 6. 内存管理
- 7. 内存管理
- 8. 内存管理
- 9. 内存管理
- 10. 内存管理
- 11. CoreData内存管理
- 12. NSMutableArray - 内存管理
- 13. mips内存管理
- 14. iPhone内存管理
- 15. iPhone内存管理
- 16. HttpClient内存管理
- 17. Windows内存管理
- 18. OSGi内存管理
- 19. MVC3内存管理
- 20. MSXML内存管理
- 21. Firefox内存管理
- 22. .NET内存管理
- 23. Linux内存管理
- 24. openACC:内存管理
- 25. iPhone内存管理
- 26. Stack.pop内存管理
- 27. OpenGL内存管理
- 28. 内存管理&viewDidUnload?
- 29. iPhone内存管理
- 30. UITabViewController内存管理
你应该搜索关于Flex而不是ActionScript的类似问题。我相信你会在这件事上找到现有的答案(Flash中的GC)。 – 2010-11-17 04:44:33