Please do not reply to this email- if you want to comment on the bug, go to the URL shown below and enter your comments there.
Changed by [EMAIL PROTECTED] http://bugzilla.ximian.com/show_bug.cgi?id=81627 --- shadow/81627 2007-07-13 12:18:54.000000000 -0400 +++ shadow/81627.tmp.16639 2007-07-18 06:13:54.000000000 -0400 @@ -80,6 +80,107 @@ ------- Additional Comments From [EMAIL PROTECTED] 2007-07-13 12:18 ------- Thanks for your work on this, Juraj. I haven't been able to test it yet (hopefully within a few days I will). Have you? Fixing this will be great - a big step toward getting this usable for Banshee, F-Spot, etc. + +------- Additional Comments From [EMAIL PROTECTED] 2007-07-18 06:13 ------- +I did some testing. Running the attached test program as follows shows +that my optimisation reduces the amount of allocated memory by almost +one third. + +mono --profile=default:alloc FSWTest.exe . 10000 + +Result without optimisation: +============================ + +Allocation profiler +Total mem Method +######################## + 7778 KB +System.MulticastDelegate::begin_invoke_IAsyncResult_object_FileSystemEventArgs_AsyncCallback_object(object,FileSystemEventArgs,AsyncCallback,object) + 1757 KB 30000 +System.Runtime.Remoting.Messaging.MonoMethodMessage + 1640 KB 30000 System.Runtime.Remoting.Messaging.AsyncResult + 1230 KB 60001 System.String + 1171 KB 30000 System.MonoAsyncCall + 744 KB 30073 System.Object[] + 703 KB 30000 System.String[] + 527 KB 30000 System.Byte[] + Callers (with count) that contribute at least for 1%: + 30000 100 % +System.IO.FileSystemWatcher::RaiseEvent(Delegate,EventArgs,FileSystemWatcher/EventType) +######################## + 3750 KB System.Delegate::Clone() + 2812 KB 60000 System.IO.FileSystemEventHandler + 937 KB 20000 System.IO.RenamedEventHandler + Callers (with count) that contribute at least for 1%: + 80000 100 % System.MulticastDelegate::GetInvocationList() +######################## + 2594 KB +System.MulticastDelegate::begin_invoke_IAsyncResult_object_RenamedEventArgs_AsyncCallback_object(object,RenamedEventArgs,AsyncCallback,object) + 585 KB 10000 +System.Runtime.Remoting.Messaging.MonoMethodMessage + 546 KB 10000 System.Runtime.Remoting.Messaging.AsyncResult + 410 KB 20001 System.String + 390 KB 10000 System.MonoAsyncCall + 249 KB 10022 System.Object[] + 234 KB 10000 System.String[] + 175 KB 10000 System.Byte[] + Callers (with count) that contribute at least for 1%: + 10000 100 % +System.IO.FileSystemWatcher::RaiseEvent(Delegate,EventArgs,FileSystemWatcher/EventType) +######################## + 781 KB System.MulticastDelegate::GetInvocationList() + 781 KB 40000 System.Delegate[] + Callers (with count) that contribute at least for 1%: + 40000 100 % +System.IO.FileSystemWatcher::RaiseEvent(Delegate,EventArgs,FileSystemWatcher/EventType) +######################## + 625 KB System.Threading.ExecutionContext::Capture() + 625 KB 40000 System.Threading.ExecutionContext + Callers (with count) that contribute at least for 1%: + 40000 100 % +System.Threading.ExecutionContext::runtime_invoke_ExecutionContext(object,intptr,intptr,intptr) +Total memory allocated: 15531 KB + +Result with optimisation: +========================= +Allocation profiler +Total mem Method +######################## + 7753 KB +System.MulticastDelegate::begin_invoke_IAsyncResult_object_FileSystemEventArgs_AsyncCallback_object(object,FileSystemEventArgs,AsyncCallback,object) + 1757 KB 30000 +System.Runtime.Remoting.Messaging.MonoMethodMessage + 1640 KB 30000 System.Runtime.Remoting.Messaging.AsyncResult + 1230 KB 60001 System.String + 1171 KB 30000 System.MonoAsyncCall + 720 KB 30050 System.Object[] + 703 KB 30000 System.String[] + 527 KB 30000 System.Byte[] + Callers (with count) that contribute at least for 1%: + 30000 100 % +System.IO.FileSystemWatcher::RaiseEvent(Delegate,EventArgs,FileSystemWatcher/EventType) +######################## + 2584 KB +System.MulticastDelegate::begin_invoke_IAsyncResult_object_RenamedEventArgs_AsyncCallback_object(object,RenamedEventArgs,AsyncCallback,object) + 585 KB 10000 +System.Runtime.Remoting.Messaging.MonoMethodMessage + 546 KB 10000 System.Runtime.Remoting.Messaging.AsyncResult + 410 KB 20001 System.String + 390 KB 10000 System.MonoAsyncCall + 240 KB 10022 System.Object[] + 234 KB 10000 System.String[] + 175 KB 10000 System.Byte[] + Callers (with count) that contribute at least for 1%: + 10000 100 % +System.IO.FileSystemWatcher::RaiseEvent(Delegate,EventArgs,FileSystemWatcher/EventType) +######################## + 625 KB System.Threading.ExecutionContext::Capture() + 625 KB 40000 System.Threading.ExecutionContext + Callers (with count) that contribute at least for 1%: + 40000 100 % +System.Threading.ExecutionContext::runtime_invoke_ExecutionContext(object,intptr,intptr,intptr) +Total memory allocated: 10966 KB + _______________________________________________ mono-bugs maillist - [email protected] http://lists.ximian.com/mailman/listinfo/mono-bugs
