Here is the reply from Microsoft. Hope it give some clue to SF team
I tried to reproduce the problemlocally and did some debugging. I am updating you with the current findings:
The problem should be related tohow EmployeesBO object is used.
1st time access todefault.aspx
=======================
10 EmployeesBO objects werecreated.
Address MT Size Gen
0x0628ddfc0x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e082c0x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e11600x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e19580x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e21500x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e29480x01b8d4c0 604 1 BusinessObjectLibrary1.EmployeesBO
0x062e31400x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e39380x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e41300x01b8d4c0 604 1BusinessObjectLibrary1.EmployeesBO
0x062e4ae4 0x01b8d4c0 604 1 BusinessObjectLibrary1.EmployeesBO
I checked the relationship ofthese objects. 0x0628ddfc seems to be a root object and be added to the sessionstate.
The other 9 EmployeesBO objectswere referenced by 0x0628ddfc. (I have 9 records in the Employees table of NorthWinddatabase)
For example:
DOMAIN(011FF9F0):HANDLE(Strong):ee11fc:Root: 0e2701a4(System.AppDomain)->
02272b40(System.ResolveEventHandler)->
0227215c(System.Web.Compilation.BuildManager)->
02272d44(System.Web.Compilation.MemoryBuildResultCache)->
0e28bcf0(System.Web.Caching.CacheMultiple)->
0e28bd08(System.Object[])->
0e28ea10(System.Web.Caching.CacheSingle)->
0e28eb24(System.Web.Caching.CacheExpires)->
0e28eb44(System.Object[])->
0e28ec94(System.Web.Caching.ExpiresBucket)->
0a2b5fb4(System.Web.Caching.ExpiresPage[])->
0a2b6038(System.Web.Caching.ExpiresEntry[])->
022f5a04(System.Web.Caching.CacheEntry)->
022f59d4(System.Web.SessionState.InProcSessionState)->
0a285c28(System.Web.SessionState.SessionStateItemCollection)->
0a285e3c(System.Collections.Hashtable)->
0a285e74(System.Collections.Hashtable+bucket[])->
0628e740(System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry)->
0628ddfc(BusinessObjectLibrary1.EmployeesBO)->
0a329b50(System.Data.DataTable)->
0e393eec(System.Data.DataView)->
0e398424(System.ComponentModel.ListChangedEventHandler)->
0e395d48(System.Object[])->
0e3960e8(System.ComponentModel.ListChangedEventHandler)->
062e05e4(MicroFour.StrataFrame.Business.BusinessBindingSource)->
062e0660(System.Collections.Generic.Dictionary`2[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]])->
062e49c8(System.Collections.Generic.Dictionary`2+Entry[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]][])->
062e4ae4(BusinessObjectLibrary1.EmployeesBO)
It seems that the object0x062e4ae4 was referenced by 0628ddfc through DataTable object and eventhandlers. (highlighted)
2nd time accessto default.aspx
=======================
9 new objects were created andthey were all referenced by the root object 0x0628ddfc which was in turn referenced bysession state.
0x0e3985a00x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e398f540x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e3997900x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e399fcc0x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e39a8ac0x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e39b1180x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e39b954 0x01b8d4c0 604 0 BusinessObjectLibrary1.EmployeesBO
0x0e39c2200x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
0x0e39cbc80x01b8d4c0 604 0BusinessObjectLibrary1.EmployeesBO
DOMAIN(011FF9F0):HANDLE(Strong):ee11fc:Root: 0e2701a4(System.AppDomain)->
02272b40(System.ResolveEventHandler)->
0227215c(System.Web.Compilation.BuildManager)->
02272d44(System.Web.Compilation.MemoryBuildResultCache)->
0e28bcf0(System.Web.Caching.CacheMultiple)->
0e28bd08(System.Object[])->
0e28ea10(System.Web.Caching.CacheSingle)->
0e28eb24(System.Web.Caching.CacheExpires)->
0e28eb44(System.Object[])->
0e28ec94(System.Web.Caching.ExpiresBucket)->
0a2b5fb4(System.Web.Caching.ExpiresPage[])->
0a2b6038(System.Web.Caching.ExpiresEntry[])->
022f5a04(System.Web.Caching.CacheEntry)->
022f59d4(System.Web.SessionState.InProcSessionState)->
0a285c28(System.Web.SessionState.SessionStateItemCollection)->
0a285e3c(System.Collections.Hashtable)->
0a285e74(System.Collections.Hashtable+bucket[])->
0628e740(System.Collections.Specialized.NameObjectCollectionBase+NameObjectEntry)->
0628ddfc(BusinessObjectLibrary1.EmployeesBO)->
0a329b50(System.Data.DataTable)->
0e393eec(System.Data.DataView)->
0e398424(System.ComponentModel.ListChangedEventHandler)->
0e395d48(System.Object[])->
0e398404(System.ComponentModel.ListChangedEventHandler)->
0e39822c(MicroFour.StrataFrame.Business.BusinessBindingSource)->
0e398270(System.Collections.Generic.Dictionary`2[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]])->
0e39ca78(System.Collections.Generic.Dictionary`2+Entry[[System.Int32,mscorlib],[MicroFour.StrataFrame.Business.BusinessLayer, MicroFour StrataFrameBusiness]][])->
0e399fcc(BusinessObjectLibrary1.EmployeesBO)
In addition, I found theseobjects were referenced byMicroFour.StrataFrame.Business.BusinessLayer.SharedDataTableCollection.
DOMAIN(011FF9F0):HANDLE(Pinned):fe11f4:Root: 12277ad8(System.Object[])->
0628e08c(MicroFour.StrataFrame.Business.BusinessLayer+SharedDataTableCollection)->
0628e0a0(System.Collections.Generic.Dictionary`2[[System.String,mscorlib],[System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]], mscorlib]])->
062e1104(System.Collections.Generic.Dictionary`2+Entry[[System.String,mscorlib],[System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]], mscorlib]][])->
062e10d4(System.Collections.Generic.List`1[[MicroFour.StrataFrame.Business.BusinessLayer,MicroFour StrataFrame Business]])->
062e4928(System.Object[])->
062e082c(BusinessObjectLibrary1.EmployeesBO)
Recommendation
==============
If I use multiple users(multiple sessions) to do load test, the memory usage increases quickly becausethere will be multiple root EmployeesBO objects which are stored in sessionstate.
Please do involve yourdevelopers of these components (e.g. MicroFour.StrataFrame.Business.BusinessBindingSource,BusinessObjectLibrary1.EmployeesBO,MicroFour.StrataFrame.Business.BusinessLayer.SharedDataTableCollection) tocheck the logic relationship of these components.
If they want to keep a copy ofthe data, please make sure only keep one copy.