当前位置: 首页 > news >正文

整理网上的一些关于sharepoint编码方面的最佳实践

 

   

  为什么需要释放内存

  在众多的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

转载于:https://www.cnblogs.com/virusswb/archive/2009/11/05/1596495.html

相关文章:

  • 基于MapWinGis的开发探索(四)——图层窗口、地名检索的实现
  • 中间件
  • ArcEngine开发点滴1
  • [转]ATOM 规范 中文版
  • javascript实现组合的递归算法及变种
  • 汇报方案
  • [转]深一层看依赖注入
  • C# 中的委托和事件 copyright http://www.cnblogs.com/JimmyZhang
  • Week Function
  • China MVP Open Day 2009
  • C# Windows Form 刷新父窗体
  • Linq to XML说法——(二)更新,删除,加载
  • 如果可以忘记
  • C#数据库编程
  • net framework3.5新特性1:Lambda表达式
  • @angular/forms 源码解析之双向绑定
  • [nginx文档翻译系列] 控制nginx
  • 230. Kth Smallest Element in a BST
  • CSS 专业技巧
  •  D - 粉碎叛乱F - 其他起义
  • Essential Studio for ASP.NET Web Forms 2017 v2,新增自定义树形网格工具栏
  • Fundebug计费标准解释:事件数是如何定义的?
  • javascript 总结(常用工具类的封装)
  • MYSQL 的 IF 函数
  • spring security oauth2 password授权模式
  • Sublime Text 2/3 绑定Eclipse快捷键
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • vue--为什么data属性必须是一个函数
  • 技术胖1-4季视频复习— (看视频笔记)
  • 聊聊sentinel的DegradeSlot
  • 什么软件可以剪辑音乐?
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 用Python写一份独特的元宵节祝福
  • ![CDATA[ ]] 是什么东东
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #{}和${}的区别?
  • #AngularJS#$sce.trustAsResourceUrl
  • (delphi11最新学习资料) Object Pascal 学习笔记---第7章第3节(封装和窗体)
  • (ibm)Java 语言的 XPath API
  • (ZT)一个美国文科博士的YardLife
  • (顺序)容器的好伴侣 --- 容器适配器
  • (四)鸿鹄云架构一服务注册中心
  • (一)Dubbo快速入门、介绍、使用
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NetCore实践篇:分布式监控Zipkin持久化之殇
  • .Net接口调试与案例
  • .Net中间语言BeforeFieldInit
  • @RequestBody与@ResponseBody的使用
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [BZOJ] 2006: [NOI2010]超级钢琴
  • [BZOJ3223]文艺平衡树
  • [C++]priority_queue的介绍及模拟实现
  • [C++打怪升级]--学习总目录