Hi Michael, Those tests were made without the sleep you mention, and without any Console.Write (because sometimes the rendering affects performance) I'll try to debug about you just said (tomorrow).
Thanks!, Diego On Fri, Jul 17, 2009 at 3:09 AM, Michael Greene<[email protected]> wrote: > A cursory exploration has shown that the problem is on the server > side, in that both ThreadPoolServer and ThreadedServer appear to be > processing requests sequentially on Mono, despite their design. On > .NET, they properly process requests in parallel. In those tests, > there is a sleep(1) on the oneway request processing, to make sure > that is being handled asynchronously. That is why your runs are ~1s > no matter how much connection re-use you are applying. > > More investigation needs to be done to figure out why Mono isn't > respecting the threadedness of the servers. > > On Thu, Jul 16, 2009 at 11:05 PM, Michael > Greene<[email protected]> wrote: >> Very interesting results Diego! The XP results are roughly consistent >> with mine but those Ubuntu results are off the charts. >> >> Mono comes with a very basic profiler: >> http://www.mono-project.com/Performance_Tips >> >> I don't think any of the other major .NET profilers have been ported >> to Linux (dotTrace or ANTS). It'd be interesting to see if you get >> the same results with Mono on XP, or if the underlying OS is affecting >> things as well. >> >> Michael >> >> On Thu, Jul 16, 2009 at 10:46 PM, Diego Jancic<[email protected]> wrote: >>> OK, It definitely has problem. >>> >>> My PC is: >>> Core 2 Duo T6400 @ 2.0 GHz >>> Memory: 3GB >>> OS: Dual boot (Ubuntu and XP) >>> >>> >>> And here are the benchmarks for exactly the same compiled exe running on >>> both OS: >>> >>> Windows XP SP3 >>> =========================================== >>>> ThriftTest.exe client -b -n 1 >>> Total time: 00:00:00.1406250 >>> Time per run: 109.375ms >>> >>>> ThriftTest.exe client -b -n 10 >>> Total time: 00:00:00.1875000 >>> Time per run: 14.0625ms >>> >>>> ThriftTest.exe client -b -n 50 >>> Total time: 00:00:00.3125000 >>> Time per run: 5.9375ms >>> >>> >>> Ubuntu Release 9.04 (Kernel Linux 2.6..28-11) >>> =========================================== >>>> mono ThriftTest.exe client -b -n 1 >>> Total time: 00:00:00.9833640 >>> Time per run: 824.054ms >>> >>>> mono ThriftTest.exe client -b -n 10 >>> Total time: 00:00:08.5421880 >>> Time per run: 839.6776ms >>> >>>> mono ThriftTest.exe client -b -n 50 >>> Total time: 00:00:42.1698610 >>> Time per run: 840.48598ms >>> >>> >>> >>> (the first test in XP takes longer because it was the first run and maybe >>> the server has to cache something) >>> >>> I restarted the PC and ran the tests twice in Ubuntu. The System Monitor >>> does not show neither a CPU overload, nor a big memory consumption, nor a >>> high load on Eth (it's everything running in the same machine anyway). >>> >>> Does anyone know if there's something like the JetBrains .NET Profiler for >>> linux? (It's a tool that profiles the app execution and tells you the hot >>> spots where the runtime is most of the time.) >>> >>> Next step to test? >>> Thanks!, >>> Diego >>> >>> >> >
