You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@thrift.apache.org by Diego Jancic <ja...@gmail.com> on 2009/07/13 04:15:04 UTC

Performance issue

Hi Guys!,

I'm exploring thrift for using it in c#, but I'm a little bit new to Thrift,
Linux, and all that stuff.
Anyways, I compiled the example in trunk/test/csharp/ and ran it, but I
guess it's taking too long.

I've got 2 PCs, connected thru a 100 MB wired-network. One has Ubuntu and
the other has an WinXP

And the benchmarks are:

Server on Ubuntu <---> Client on Ubuntu  ............ 1.71 sec
Server on XP     <---> Client on XP      ............ 0.22 sec 
Server on Ubuntu <---> Client on XP      ............ 4.27 sec 
Server on XP     <---> Client on Ubuntu  ............ 4.26 sec


I guess all are really slow times, even the XP-XP test. But I cannot
understand how can the Ubuntu-Ubuntu is working so slow.
The other configurations (Ubuntu-XP, and XP-Ubuntu) maybe are working so
slow due to the Ubuntu side, cause I don't guess a router with only 2
machines can make that work that way.

All tests are running over Mono, I'm gonna *try* to build another version of
the example to test it.

Thanks for any tip,
Diego


RE: Performance issue

Posted by Diego Jancic <ja...@gmail.com>.
I didn't tested it too much (I've been working in other things)
The test on Mono over WinXP runs fast, although it's a bit slower than in
.net there's still a huge difference with Mono over Ubuntu.

Here are the output for the "mono --profile":
http://bit.ly/smzUG

It doesn't show me any bottleneck, may be is the linux kernel who is doing
some checks and makes the whole thing slower.

Diego

-----Original Message-----
From: Diego Jancic [mailto:jancic@gmail.com] 
Sent: Friday, July 17, 2009 10:23
To: thrift-user@incubator.apache.org
Subject: Re: Performance issue

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<mi...@gmail.com>
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<mi...@gmail.com> 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<ja...@gmail.com> 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
>>>
>>>
>>
>


Re: Performance issue

Posted by Diego Jancic <ja...@gmail.com>.
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<mi...@gmail.com> 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<mi...@gmail.com> 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<ja...@gmail.com> 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
>>>
>>>
>>
>

Re: Performance issue

Posted by Michael Greene <mi...@gmail.com>.
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<mi...@gmail.com> 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<ja...@gmail.com> 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
>>
>>
>

Re: Performance issue

Posted by Michael Greene <mi...@gmail.com>.
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<ja...@gmail.com> 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
>
>

RE: Performance issue

Posted by Diego Jancic <ja...@gmail.com>.
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


Re: Performance issue

Posted by Diego Jancic <ja...@gmail.com>.
Thanks Michael. I was testing everything on similar machines.
I'll do a benchmark like yours and post the results. Maybe the results
on the windows machine with VS2008 will be similar, but I guess the
ones on the ubuntu machine with Mono will be 100 times slower.

Let me try again (maybe tomorrow). Do you want to send me the same
thrift and exe file you are using so I run them in Ubuntu?
The ubuntu machine has dual boot with Win XP, and is a Core 2 Duo, 4GB
RAM, 100Mb eth notebook. So I'll be able to compare running the same
in both linux and windows.

Thanks,
Diego

On Thu, Jul 16, 2009 at 2:12 PM, Michael Greene<mi...@gmail.com> wrote:
> I don't know why this initial connection latency is there, and I'd be
> interested in helping you track it down if you come up with anything
> else.
>
> My usage pattern doesn't really run into this problem much.  If the
> connections are re-used at all it becomes much less of a problem.  For
> instance, with a slightly modified TestClient for better reporting I
> get the following results on a pretty mid-grade developer machine
> (Core 2 Duo, 4GB RAM, 100Mb eth):
>
>>ThriftTest.exe client -b -n 1
> Total time: 00:00:00.2219094 (hh:mm:ss)
> Time per run: 221ms
> Time per service call: 11.05ms
>
>>ThriftTest.exe client -b -n 10
> Total time: 00:00:00.4213149 (hh:mm:ss)
> Time per run: 42.1ms
> Time per service call: 2.105ms
>
>>ThriftTest.exe client -b -n 50
> Total time: 00:00:01.1194741 (hh:mm:ss)
> Time per run: 22.38ms
> Time per service call: 1.119ms
>
>>ThriftTest.exe client -b -n 500
> Total time: 00:00:08.9140619 (hh:mm:ss)
> Time per run: 17.828ms
> Time per service call: 0.8914ms
>
> This is on a Windows machine with VS2008, Mono results may vary -- we
> aren't using any secret Microsoft sauce though, and the results should
> be portable.
>
> Michael
>
> On Thu, Jul 16, 2009 at 11:22 AM, Diego Jancic<ja...@gmail.com> wrote:
>> You're right, Thrift/Linux is not .net friendly ;-)
>> Anyway, I was not able to compile the C++ version of the example, but
>> I'll test with a sniffer on the weekend.
>>
>> Thanks!
>>
>> On Thu, Jul 16, 2009 at 12:59 PM, Jonathan Marcus<ja...@jobstick.com> wrote:
>>> I guess there aren't too many other C# users on this list, but I've also had
>>> a similar problem. I've posted about it before (on 4/24/2009), but there
>>> weren't any answers.
>>>
>>> I've used a sniffer and looked at the wire traffic for a simple test case,
>>> and I experience ~100ms latency from the first client->server data packet
>>> until the first response, on every single request.
>>>
>>> Has anybody has a successful C# implementation? If so, can you describe your
>>> setup, so that hopefully I can mimic it?
>>>
>>> --Jonathan
>>>
>>> Diego Jancic wrote:
>>>>
>>>> Hi Guys!,
>>>>
>>>> I'm exploring thrift for using it in c#, but I'm a little bit new to
>>>> Thrift,
>>>> Linux, and all that stuff.
>>>> Anyways, I compiled the example in trunk/test/csharp/ and ran it, but I
>>>> guess it's taking too long.
>>>>
>>>> I've got 2 PCs, connected thru a 100 MB wired-network. One has Ubuntu and
>>>> the other has an WinXP
>>>>
>>>> And the benchmarks are:
>>>>
>>>> Server on Ubuntu <---> Client on Ubuntu  ............ 1.71 sec
>>>> Server on XP     <---> Client on XP      ............ 0.22 sec Server on
>>>> Ubuntu <---> Client on XP      ............ 4.27 sec Server on XP     <--->
>>>> Client on Ubuntu  ............ 4.26 sec
>>>>
>>>>
>>>> I guess all are really slow times, even the XP-XP test. But I cannot
>>>> understand how can the Ubuntu-Ubuntu is working so slow.
>>>> The other configurations (Ubuntu-XP, and XP-Ubuntu) maybe are working so
>>>> slow due to the Ubuntu side, cause I don't guess a router with only 2
>>>> machines can make that work that way.
>>>>
>>>> All tests are running over Mono, I'm gonna *try* to build another version
>>>> of
>>>> the example to test it.
>>>>
>>>> Thanks for any tip,
>>>> Diego
>>>>
>>>
>>>
>>
>

Re: Performance issue

Posted by Michael Greene <mi...@gmail.com>.
I don't know why this initial connection latency is there, and I'd be
interested in helping you track it down if you come up with anything
else.

My usage pattern doesn't really run into this problem much.  If the
connections are re-used at all it becomes much less of a problem.  For
instance, with a slightly modified TestClient for better reporting I
get the following results on a pretty mid-grade developer machine
(Core 2 Duo, 4GB RAM, 100Mb eth):

>ThriftTest.exe client -b -n 1
Total time: 00:00:00.2219094 (hh:mm:ss)
Time per run: 221ms
Time per service call: 11.05ms

>ThriftTest.exe client -b -n 10
Total time: 00:00:00.4213149 (hh:mm:ss)
Time per run: 42.1ms
Time per service call: 2.105ms

>ThriftTest.exe client -b -n 50
Total time: 00:00:01.1194741 (hh:mm:ss)
Time per run: 22.38ms
Time per service call: 1.119ms

>ThriftTest.exe client -b -n 500
Total time: 00:00:08.9140619 (hh:mm:ss)
Time per run: 17.828ms
Time per service call: 0.8914ms

This is on a Windows machine with VS2008, Mono results may vary -- we
aren't using any secret Microsoft sauce though, and the results should
be portable.

Michael

On Thu, Jul 16, 2009 at 11:22 AM, Diego Jancic<ja...@gmail.com> wrote:
> You're right, Thrift/Linux is not .net friendly ;-)
> Anyway, I was not able to compile the C++ version of the example, but
> I'll test with a sniffer on the weekend.
>
> Thanks!
>
> On Thu, Jul 16, 2009 at 12:59 PM, Jonathan Marcus<ja...@jobstick.com> wrote:
>> I guess there aren't too many other C# users on this list, but I've also had
>> a similar problem. I've posted about it before (on 4/24/2009), but there
>> weren't any answers.
>>
>> I've used a sniffer and looked at the wire traffic for a simple test case,
>> and I experience ~100ms latency from the first client->server data packet
>> until the first response, on every single request.
>>
>> Has anybody has a successful C# implementation? If so, can you describe your
>> setup, so that hopefully I can mimic it?
>>
>> --Jonathan
>>
>> Diego Jancic wrote:
>>>
>>> Hi Guys!,
>>>
>>> I'm exploring thrift for using it in c#, but I'm a little bit new to
>>> Thrift,
>>> Linux, and all that stuff.
>>> Anyways, I compiled the example in trunk/test/csharp/ and ran it, but I
>>> guess it's taking too long.
>>>
>>> I've got 2 PCs, connected thru a 100 MB wired-network. One has Ubuntu and
>>> the other has an WinXP
>>>
>>> And the benchmarks are:
>>>
>>> Server on Ubuntu <---> Client on Ubuntu  ............ 1.71 sec
>>> Server on XP     <---> Client on XP      ............ 0.22 sec Server on
>>> Ubuntu <---> Client on XP      ............ 4.27 sec Server on XP     <--->
>>> Client on Ubuntu  ............ 4.26 sec
>>>
>>>
>>> I guess all are really slow times, even the XP-XP test. But I cannot
>>> understand how can the Ubuntu-Ubuntu is working so slow.
>>> The other configurations (Ubuntu-XP, and XP-Ubuntu) maybe are working so
>>> slow due to the Ubuntu side, cause I don't guess a router with only 2
>>> machines can make that work that way.
>>>
>>> All tests are running over Mono, I'm gonna *try* to build another version
>>> of
>>> the example to test it.
>>>
>>> Thanks for any tip,
>>> Diego
>>>
>>
>>
>

Re: Performance issue

Posted by Diego Jancic <ja...@gmail.com>.
You're right, Thrift/Linux is not .net friendly ;-)
Anyway, I was not able to compile the C++ version of the example, but
I'll test with a sniffer on the weekend.

Thanks!

On Thu, Jul 16, 2009 at 12:59 PM, Jonathan Marcus<ja...@jobstick.com> wrote:
> I guess there aren't too many other C# users on this list, but I've also had
> a similar problem. I've posted about it before (on 4/24/2009), but there
> weren't any answers.
>
> I've used a sniffer and looked at the wire traffic for a simple test case,
> and I experience ~100ms latency from the first client->server data packet
> until the first response, on every single request.
>
> Has anybody has a successful C# implementation? If so, can you describe your
> setup, so that hopefully I can mimic it?
>
> --Jonathan
>
> Diego Jancic wrote:
>>
>> Hi Guys!,
>>
>> I'm exploring thrift for using it in c#, but I'm a little bit new to
>> Thrift,
>> Linux, and all that stuff.
>> Anyways, I compiled the example in trunk/test/csharp/ and ran it, but I
>> guess it's taking too long.
>>
>> I've got 2 PCs, connected thru a 100 MB wired-network. One has Ubuntu and
>> the other has an WinXP
>>
>> And the benchmarks are:
>>
>> Server on Ubuntu <---> Client on Ubuntu  ............ 1.71 sec
>> Server on XP     <---> Client on XP      ............ 0.22 sec Server on
>> Ubuntu <---> Client on XP      ............ 4.27 sec Server on XP     <--->
>> Client on Ubuntu  ............ 4.26 sec
>>
>>
>> I guess all are really slow times, even the XP-XP test. But I cannot
>> understand how can the Ubuntu-Ubuntu is working so slow.
>> The other configurations (Ubuntu-XP, and XP-Ubuntu) maybe are working so
>> slow due to the Ubuntu side, cause I don't guess a router with only 2
>> machines can make that work that way.
>>
>> All tests are running over Mono, I'm gonna *try* to build another version
>> of
>> the example to test it.
>>
>> Thanks for any tip,
>> Diego
>>
>
>

Re: Performance issue

Posted by Jonathan Marcus <ja...@jobstick.com>.
I guess there aren't too many other C# users on this list, but I've also 
had a similar problem. I've posted about it before (on 4/24/2009), but 
there weren't any answers.

I've used a sniffer and looked at the wire traffic for a simple test 
case, and I experience ~100ms latency from the first client->server data 
packet until the first response, on every single request.

Has anybody has a successful C# implementation? If so, can you describe 
your setup, so that hopefully I can mimic it?

--Jonathan

Diego Jancic wrote:
> Hi Guys!,
> 
> I'm exploring thrift for using it in c#, but I'm a little bit new to Thrift,
> Linux, and all that stuff.
> Anyways, I compiled the example in trunk/test/csharp/ and ran it, but I
> guess it's taking too long.
> 
> I've got 2 PCs, connected thru a 100 MB wired-network. One has Ubuntu and
> the other has an WinXP
> 
> And the benchmarks are:
> 
> Server on Ubuntu <---> Client on Ubuntu  ............ 1.71 sec
> Server on XP     <---> Client on XP      ............ 0.22 sec 
> Server on Ubuntu <---> Client on XP      ............ 4.27 sec 
> Server on XP     <---> Client on Ubuntu  ............ 4.26 sec
> 
> 
> I guess all are really slow times, even the XP-XP test. But I cannot
> understand how can the Ubuntu-Ubuntu is working so slow.
> The other configurations (Ubuntu-XP, and XP-Ubuntu) maybe are working so
> slow due to the Ubuntu side, cause I don't guess a router with only 2
> machines can make that work that way.
> 
> All tests are running over Mono, I'm gonna *try* to build another version of
> the example to test it.
> 
> Thanks for any tip,
> Diego
>