[Ikvm-developers] IKVM Compiled DLL and multithreading
Brought to you by:
jfrijters
|
From: Micle, F. <Mi...@ad...> - 2014-04-10 15:56:00
|
Hello everyone, I used IKVMC to compile a jar into a .NET DLL. The jar does some intensive math computations, maxing out the CPU core on which the thread runs. In Java each thread will max out at 12.5% CPU (because I have 8 cores, 100% / 8 = 12.5% max CPU per thread). It works fine if I have one thread or 6. If I use this in the .NET world, one thread will use 12.5% CPU, 2 threads will use about 11% CPU each, 3 threads about 9%, 4 threads about 7% each. The performance of each thread degrades considerably the more threads I have. Doesn't happen if I use the jar from a java app. It feels like it's something deep inside the compiled .NET DLL there is some serialization that occurs, some resource contention... no idea... I tried setting the apartment option to MTA when compiling the jar and it didn't make a difference. Any suggestions would be highly appreciated. Best Regards, Florin Micle |