Skip to content

Instantly share code, notes, and snippets.

@patricksuo
Created March 31, 2017 01:41
Show Gist options
  • Save patricksuo/ecbf780bf24f422f6ab9787c630139cc to your computer and use it in GitHub Desktop.
Save patricksuo/ecbf780bf24f422f6ab9787c630139cc to your computer and use it in GitHub Desktop.
using System;
namespace threadpool_bench
{
class Program
{
static int totalRound;
static System.Threading.ManualResetEventSlim finishEvent;
static System.Threading.WaitCallback job = obj =>
{
var old = System.Threading.Interlocked.Decrement(ref totalRound);
if (old > 0)
{
System.Threading.ThreadPool.QueueUserWorkItem(job);
}
else if (old == 0)
{
finishEvent.Set();
}
};
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
for (var i = 0; i < 10; i++)
{
System.Diagnostics.Stopwatch watcher = new System.Diagnostics.Stopwatch();
finishEvent = new System.Threading.ManualResetEventSlim();
watcher.Start();
totalRound = 100 * 100000;
for (var j = 0; j < 1000; j++)
{
System.Threading.ThreadPool.QueueUserWorkItem(job);
}
finishEvent.Wait();
watcher.Stop();
Console.WriteLine("round {0} time {1}", i, watcher.ElapsedMilliseconds);
finishEvent.Wait(500);
}
}
}
}
@patricksuo
Copy link
Author

threadpool domains_lock 0xb389b8
threadpool_worker parked_threads_lock 0xb38a40
threadpool_worker parked_threads_cond 0xb38a70
threadpool_worker worker_creation_lock 0xb38ab0
threadpool_worker heuristic_lock 0xb38bb8
round 0 time 5129
round 1 time 2566
round 2 time 6978
round 3 time 9848
round 4 time 22607
round 5 time 40754
round 6 time 51302
round 7 time 37000
round 8 time 24734
round 9 time 25515

mono[19560] lock 0x7ff284000020 contended 84 times, 11 avg us
mono[19560] lock 0x7ff248000020 contended 87 times, 14 avg us
mono[19560] lock 0x7ff280000020 contended 98 times, 15 avg us
mono[19560] lock 0x7ff240000020 contended 125 times, 20 avg us
mono[19560] lock 0x7ff27c000020 contended 101 times, 14 avg us
mono[19560] lock 0x1d6d35c contended 102 times, 60397 avg us
mono[19560] lock 0xb69600 contended 4120 times, 865 avg us
mono[19560] lock 0xb38a40 contended 775650 times, 1446 avg us
mono[19560] lock 0x1d6d2ec contended 21 times, 60150 avg us
mono[19560] lock 0x7ff2a4000020 contended 125 times, 20 avg us
mono[19560] lock 0x7ff25c000020 contended 117 times, 11 avg us
mono[19560] lock 0x7ff254000020 contended 90 times, 20 avg us
mono[19560] lock 0x1d76f00 contended 1 times, 12 avg us
mono[19560] lock 0xb38a70 contended 19818 times, 30 avg us
mono[19560] lock 0x7ff274000020 contended 92 times, 22 avg us
mono[19560] lock 0x7ff2a8000020 contended 87 times, 19 avg us
mono[19560] lock 0x7ff28c000020 contended 152 times, 18 avg us
mono[19560] lock 0xb68cc0 contended 6867 times, 70 avg us
mono[19560] lock 0xb38ab0 contended 115147 times, 25 avg us
mono[19560] lock 0x7ff294000020 contended 98 times, 21 avg us
mono[19560] lock 0x7ff288000020 contended 109 times, 18 avg us
mono[19560] lock 0x7ff24c000020 contended 82 times, 14 avg us
mono[19560] lock 0xb68144 contended 29 times, 1339203 avg us
mono[19560] lock 0xb68be0 contended 35 times, 525 avg us
mono[19560] lock 0x7ff278000020 contended 88 times, 15 avg us
mono[19560] lock 0x7ffc11b4bb54 contended 2 times, 225 avg us
mono[19560] lock 0x7ff270000020 contended 92 times, 19 avg us
mono[19560] lock 0x7ff258000020 contended 98 times, 22 avg us
mono[19560] lock 0xb387a0 contended 42 times, 1061 avg us
mono[19560] lock 0x7ff290000020 contended 118 times, 20 avg us
mono[19560] lock 0x7ff29c000020 contended 107 times, 16 avg us
mono[19560] lock 0x1d6d3cc contended 108 times, 62101 avg us
mono[19560] lock 0x7ff250000020 contended 125 times, 10 avg us
mono[19560] lock 0x7ff2a0000020 contended 112 times, 21 avg us
mono[19560] lock 0x7ff268000020 contended 95 times, 14 avg us
mono[19560] lock 0x7ff35d057930 contended 63 times, 701 avg us
mono[19560] lock 0x7ff234000020 contended 129 times, 12 avg us
mono[19560] lock 0xb389b8 contended 2652436 times, 16 avg us
mono[19560] lock 0x7ff244000020 contended 105 times, 14 avg us
mono[19560] lock 0x7ff23c000020 contended 129 times, 11 avg us
mono[19560] lock 0x7ff31acfb9d0 contended 1 times, 72 avg us
mono[19560] lock 0xb68184 contended 26 times, 1356 avg us
mono[19560] lock 0x7ff2621079d0 contended 1 times, 1019 avg us
mono[19560] lock 0xb387e0 contended 3 times, 9 avg us
mono[19560] lock 0x7ff2f17c79d0 contended 1 times, 13 avg us
mono[19560] lock 0x7ff31a1b39d0 contended 1 times, 48 avg us
mono[19560] lock 0xb68360 contended 3 times, 21 avg us
mono[19560] lock 0x7ff3524d59d0 contended 1 times, 24 avg us
mono[19560] lock 0x7ffc11b4c104 contended 1 times, 54 avg us

@patricksuo
Copy link
Author

@luhenry would you like to take a look?

@patricksuo
Copy link
Author

threadpool domains_lock 0xb389b8, contended 2652436 times, 16 avg us
threadpool_worker parked_threads_lock 0xb38a40, contended 775650 times, 1446 avg us
threadpool_worker parked_threads_cond 0xb38a70, contended 19818 times, 30 avg us
threadpool_worker worker_creation_lock 0xb38ab0, contended 115147 times, 25 avg us

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment