优化代码性能

上次修改时间: 2009年10月7日

适用范围: SharePoint Foundation 2010

避免在代码中不必要地创建和损坏对象,因为这样做可能需要生成针对数据库的额外查询,甚至可能包含不正确的代码。

在下面的示例中,每当使用索引器设置属性并调用用于更新的方法时,都必须实例化 Tasks list 的单独对象。

示例:(不推荐)

Dim myWeb As SPWeb = SPContext.Current.Web

myWeb.Lists("Tasks").Title = "List_Title"
myWeb.Lists("Tasks").Description = "List_Description"
myWeb.Lists("Tasks").Update()
SPWeb myWeb = SPContext.Current.Web;

myWeb.Lists["Tasks"].Title = "List_Title";
myWeb.Lists["Tasks"].Description = "List_Description";
myWeb.Lists["Tasks"].Update();

下面的示例仅实例化 Tasks list 对象一次并将其分配给 myList 变量,以便设置属性并调用方法。

示例:(推荐)

Dim myWeb As SPWeb = SPContext.Current.Web

Dim myList As SPList = myWeb.Lists("Tasks")

myList.Title="List_Title"
myList.Description="List_Description"
myList.Update()
SPWeb myWeb = SPContext.Current.Web;

SPList myList = myWeb.Lists["Tasks"];

myList.Title="List_Title";
myList.Description="List_Description";
myList.Update();

上一示例要求对 Microsoft.SharePoint 命名空间使用 using 指令(在 Visual Basic 中为 Imports)。

Microsoft.SharePoint 程序集中的对象模型可优化性能并最小化生成的 SQL 查询的数量。不过,若要监视代码性能,则建议使用 SQL 事件探查器。

若要从集合中返回单个项目,请在通过父对象而不是通过循环访问整个集合并使用索引器来提供集合时,始终使用 Get* 方法。例如,SPWeb 类提供可用于返回单个项目的 GetFileGetFolderGetListItem 方法。

请参阅

概念

SharePoint 开发任务 - 如何实现?

使用列表对象和集合