When I execute tasks one at a time (multiple sequential processes), they are a lot faster than executing all, one after the other in a single execution (unique process single thread).
In a real example, a task that takes about 20m/30m alone jumps to 1h30m or more in the middle of others.
This happens in memory usage situations under 10%.
I tried with many examples, this one was the faster to show similar traits I found so far, although the difference is a lot smaller, but I hope its representative.
On the 4k execution the overhead comparative to 1k is more than 50%.
public class A
public static void Main(string args)
uint count = uint.Parse(args);
for(int i=0; i<count; i++)
System.Console.WriteLine("\n\nIteration " + i);
AppDomain ad = AppDomain.CreateDomain("ChildDomain");
Mono JIT compiler version 3.3.0 (master/b213fac Qua Ago 7 10:19:08 WEST 2013)
After some additional testing, I realized the problem I have might be related to open files.
The real scenario is basically a CI testing.
If I pre-build, then the tests execution take about 28m.
The pre-build takes about 8m.
But if I don't pre-build, the tests execution take about 1h25m.
(Some additional extra 5 minutes if I execute the other components tests before)
As the build process is mostly file and memory heavy, I was guessing it might be a memory allocation issue.
But I was unable to reproduce it, the best I got so far was that sample, with an overhead of more than 50%, but it might not be a good one, as very few app domains are being used, at most 10 I guess.
I'm suspecting something related to the files, as it takes more than 3x the time, 200% of overhead.
Is there anything I can do to pin down the exact source of the problem or this is some kind of expected behaviour?
Thank you for your report!
It appears you are running a very old version of Mono. Could you please try to update to any recent version and try to reproduce the issue again.
If the issue still persists please include the version information and change the bug status to NEW.