整理网上的一些关于sharepoint编码方面的最佳实践
2009-11-05 11:38
513 查看
为什么需要释放内存
在众多的sharepoint对象中模型中,主要是SPSite类和SPWeb类的对象,虽然是使用托管代码创建。但是,这些对象主要使用非托管的代码和内存进行工作。对象中的托管部分相比较非托管部分来说,所占比例非常小。因为占比较小的托管部分不给垃圾回收期任何压力,垃圾回收器不会定时回收管理这些对象使用的内存。使用大量非托管内存的对象,可能会引起一些异常的行为。例如:
1)WSS的应用程序池频繁回收,尤其是在使用的高峰期
2)应用崩溃
3)IIS占用大量内存
4)系统和应用性能差
在WWS中调用实现IDisposable接口的对象,一定要在这些对象使用完毕之后释放他们。你不应该依赖于垃圾回收器自动释放他们所占用的内存。
因为在SPSite和SPWeb的内部会调用internal class Microsoft.SharePoint.Library.SPRequest,这个对象使用非托管的Com资源,所以你可以通过一种简单的方式来发现你的代码中是否有没有释放的内存。
打开12\logs\目录中的日志文件,F3查询SPRequest或者是dispose,仔细看看是否有AN SPRequest object was not disposed before the end of this thread之类的描述,应该就是没有释放的问题。
1、缓存数据
Best Practices: Common Coding Issues When Using the SharePoint Object Model
2、内存泄露和释放
Best Practices: Using Disposable Windows SharePoint Services Objects
SharePoint 2007 and WSS 3.0 Dispose Patterns by Example
Dealing with Memory Pressure problems in MOSS/WSS
相关文章推荐
- 整理网上的一些关于sharepoint编码方面的最佳实践
- 关于文字编码方面的知识点的一些整理
- 关于iOS应用设计的一些最佳实践
- SharePoint2010企业开发最佳实践(四)---- 关于使用可释放的 SharePoint 对象的介绍
- 从网上整理了一些关于比较时间大小和请求网络时间的代码,在这里展示一下
- 关于iOS应用设计的一些最佳实践
- 关于iOS应用设计的一些最佳实践
- SAP HANA数据载入的最佳实践(关于HANA性能的一些观点)
- 关于CI的服务器与最佳实践,这里有一些思考
- C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
- 关于CI的服务器与最佳实践,这里有一些思考
- 关于Android最佳性能实践——高性能编码优化学习笔记
- 关于“业界最佳实践”的一些想法
- C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
- 关于网上一些关于内存泄漏和内存溢出资料整理(一)
- SharePoint 2010开发人员需要注意的在安全方面的最佳实践
- C4C Cloud Application Studio做ABSL开发的一些性能方面的最佳实践
- 关于“网上社会实践”网站完工之后的一些感想