`
com1com4
  • 浏览: 162179 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Apps相关内存泄漏易发生点

阅读更多
Apps相关内存泄漏易发生点:
成因:
1、用接口引用InterfacedPersistent对象后,接口引用失去时只减少引用计数,并不会在引用计数为零时释放对象本身(InterfacedObject则会自动释放),APPS中有大量这种用接口引用InterfacedPersistent的应用,故泄漏基本都上出自这方面。解决方法有二:一是,不使用接口获取对象引用,直接使用抽象基类获取(影响整体框架不考虑);二是,对接口或者实现类添加自定义的IAsObject接口,实现asObject方法,返回对象本身,再进行释放。
2、TList的GetEnumerator问题,其内部实现是Create一个TlistEnumerator的,获取后需手动释放,在ddom中存在没释放的问题,另外调用了ddom中的.iterator()方法也实际上是调用GetEnumerator,用后注意释放。
3、Element.getChildren会Create一个List,使用完后要手工释放。只获到子节点数的话,可用getContentSize()
 
具体细节:
1、Logger接口实现类由于继承于InterfacedPersistent,对象失去接口引用时,只会减少引用计数,引用计数为0时并不会自动释放Logger所引用对象,需设法获取对象本身(如添加asObject方法返回对象本身)。现用单例模式处理并不需要频繁释放。
2、Servlet释放问题,原因同上,已对Servlet添加asObject,在HTTPHandler添加了释放代码
3、DOMOutputter也是同样问题,由于ddomrtl为公用模块,为保证兼容性,DOMOututter添加asObject方法,获取对象本身后手动释放。
4、HTTPHandler问题同上。。。解决方法也是用asObject手动释放算了。。。
分享到:
评论

相关推荐

    EBS R12.2 更改apps密码

    本文将详细介绍 EBS R12.2 更改apps密码的步骤和相关知识点。 停应用服务 在更改apps密码之前,需要停应用服务,以防止系统中的应用程序继续使用旧的密码。停应用服务的命令是$INST_TOP/admin/scripts/adstpall.sh...

    Google+Apps+Script.pdf

    《Google Apps Script》第二版由James Ferreira撰写,版权归属于2014年的James Ferreira。本书由O'Reilly Media, Inc.在美国出版,地址位于加利福尼亚州塞巴斯托波尔市北格雷文斯坦高速公路1005号。O'Reilly的书籍...

    WindowsApps

    WindowsApps

    Pro Android Apps Performance Optimization

    书中介绍了如何进行内存泄漏检测,理解引用类型,如强引用、软引用、弱引用和虚引用的区别,以及如何使用Android Studio的内存分析工具来监控和分析应用的内存消耗。 3. **UI性能提升**:针对Android用户界面,书中...

    Office Web Apps Server

    《搭建Office Web Apps Server与SharePoint 2013的详细步骤》 在现代企业环境中,高效的协作和信息共享是至关重要的。微软的Office Web Apps Server和SharePoint 2013结合,提供了在线查看和编辑Microsoft Office...

    Google Apps Script,第2版

    ### Google Apps Script 第二版 —— 关键知识点详解 #### 标题与描述解析 - **标题**: "Google Apps Script, 第2版" - **核心概念**: 本书是关于Google Apps Script的第二版,主要介绍了如何利用Google Apps ...

    APPS apps.zip

    标题中的"APPS apps.zip"表明这是一个包含应用程序或者与应用相关的压缩文件,而"APPS"可能是"应用程序"的缩写。描述中的信息简洁,没有提供额外的上下文,因此我们将主要依赖标签和文件列表来推测其中可能包含的...

    Pro iOS Apps Performance Optimization2017

    2. **内存管理**:深入探讨Objective-C和Swift的内存管理机制,如ARC(Automatic Reference Counting)和强引用循环,以及如何有效地释放内存,避免内存泄漏。 3. **线程与多任务**:讲解GCD(Grand Central ...

    Office Web Apps and Skype

    【Office Web Apps与Skype整合】 Office Web Apps和Skype for Business的集成是现代企业协作的重要组成部分,使得用户能够在浏览器中直接编辑、查看和共享Microsoft Office文档,同时利用Skype for Business的通信...

    高清彩版 Pro iOS Apps Performance Optimization

    本章节详细讲述了如何有效管理内存资源,避免内存泄漏等问题的发生。 - **ARC自动引用计数**:虽然Xcode默认启用了ARC功能,但开发者仍需关注潜在的内存泄露风险。 - **手动内存管理**:在某些情况下,手动管理内存...

    python Django中的apps.py的目的是什么

    在Python的Django框架中,apps.py文件是Django应用程序的配置中心,它负责存放应用程序的元数据和配置信息。Django框架允许开发者通过编写各种配置来定义和管理Django项目中的各个组件。apps.py文件的主要作用在于...

    office web apps整合

    5. **配置Office Web Apps**: 在服务器上部署并配置Office Web Apps服务,设置指向你的Wopi Host的URL和其他相关参数。 6. **前端集成**: 在你的Web应用中,使用JavaScript或者HTML5来调用Office Web Apps的嵌入...

    google apps script源码参考

    Google Apps Script是一种基于JavaScript的云编程平台,专为构建Google应用程序(如Gmail、Google Sheets、Google Docs等)的自定义功能和自动化任务而设计。它允许用户通过编写脚本来扩展这些应用的功能,无需具备...

    android手机内存分配小结

    通过分析smem日志,开发者和系统维护人员可以追踪内存的使用模式,找出可能导致性能问题或内存泄漏的地方。这在优化应用程序和整个Android系统的性能时至关重要。 总结来说,Android手机内存的分配涉及到硬件接口、...

    ASP.net office web apps整合

    在ASP.NET中整合Office Web Apps,主要涉及以下几个关键知识点: 1. **ASP.NET框架**:ASP.NET是由Microsoft开发的一种用于构建Web应用程序的开源框架。它提供了一系列的工具和服务,简化了Web应用的开发过程,包括...

    Power Apps网关

    **Power Apps网关详解** Power Apps是微软提供的一款低代码应用程序开发平台,它允许用户无需深厚的编程背景就能创建和运行自定义的业务应用。在某些场景下,我们需要将Power Apps与本地数据源进行连接,例如企业的...

    OWASP_Broken_Web_Apps_VM_1.2

    ### OWASP Broken Web Apps VM 1.2:深入解析与实战指南 #### 一、OWASP Broken Web Apps VM 概览 **OWASP Broken Web Apps VM**(虚拟机)是OWASP基金会推出的一个用于安全测试的学习平台。它包含了多个故意设计...

Global site tag (gtag.js) - Google Analytics