Best Practices
다음 과 같이 소스는 메모리를 많이 사용한다고 한다.
그리고 IIS 에서의 리사이클 주기를 짧게 하여 성능 상의 문제를 일으킨다고 한다.
다음 과 같이 소스는 메모리를 많이 사용한다고 한다.
그리고 IIS 에서의 리사이클 주기를 짧게 하여 성능 상의 문제를 일으킨다고 한다.
public void GetNavigationInfo() { SPWeb oSPWeb = SPContext.Web; // .. Get information oSPWeb for navigation .. foreach(SPWeb oSubWeb in oSPWeb.GetSubWebsForCurrentUser()) { // .. Add subweb information for navigation .. } }아래와 같이 Dispose 를 권장한다.
public void GetNavigationInfo() { SPWeb oSPWeb = SPContext.Web; foreach(SPWeb oSubWeb in oSPWeb.GetSubWebsForCurrentUser())) { // .. Add subweb information for navigation .. oSubWeb.Dispose(); } }캐쉬 데이타를 사용할 경우에는 Lock 을 하자 아래의 소스 처럼 캐쉬 데이터를 사용할 경우 동 시간대의 접속 자들은 같은 오브젝트에 같은 데이터를 업데이트를 하려고 한다. 이 경우 캐쉬데이타의 깨짐 현상이 일어 날수 있다고 한다.
public void CacheData() { SPListItemCollection oListItems; oListItems = (SPListItemCollection)Cache["ListItemCacheName"]; if(oListItems == null) { oListItems = DoQueryToReturnItems(); Cache.Add("ListItemCacheName", oListItems, ..); } }이 현상을 방지 하기 위해서 다음과 같은 locking 처리가 필요하다.
public void CacheData() { DataTable oDataTable; SPListItemCollection oListItems; lock(this) { oDataTable = (DataTable)Cache["ListItemCacheName"]; if(oDataTable == null) { oListItems = DoQueryToReturnItems(); oDataTable = oListItems.GetDataTable(); Cache.Add("ListItemCacheName", oDataTable, ..); } } }
'Solution Platform' 카테고리의 다른 글
리스트 아이템에 권한 변경에 관련된 정리 (1) | 2009.07.27 |
---|---|
Run a workflow as a specific user using code (0) | 2009.07.23 |
Understanding Workflow in Windows SharePoint Services and the 2007 Microsoft Office System (0) | 2009.07.21 |
SharePoint Workflow Status Code (0) | 2009.07.14 |
사이트 사용 권한 수준 추가하는 방법 (0) | 2009.07.10 |