I have a List called myData and I want to apply a particular method (someFunction) to every element in the List. Is calling a method through an object's constructor slower than calling the same method many times for one particular object instantiation?
In other words, is this:
for(int i = 0; i < myData.Count; i++)
myClass someObject = new myClass(myData[i]);
slower than this:
myClass someObject = new myClass();
for(int i = 0; i < myData.Count; i++)
someObject.someFunction(myData[i]);
?
If so, how much slower?
The former approach might result in significant increase of your process working set. It also might put a memory pressure on Windows, causing other apps to be swapped out to the disk.
Also, it will put a lot of pressure on the CLR garbage collector, since each new object you create will be tracked for collecting.
How much slower it will be depends a lot on the size and the number of objects you are creating.