Jump to content
  • Advertisement

Archived

This topic is now archived and is closed to further replies.

DarkZoulz

High-end server running on .NET?

This topic is 5272 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Does anyone know if there is any decrease in performance running a high-end server (MMORPG for instance) written in VB.NET/C# to a server written in C++?

Share this post


Link to post
Share on other sites
Advertisement
There definitely is a performance difference. VB/C# are designed for productivity, not performance. A C/C++ server will out-perform any VB/C# server.

Kuphryn

Share this post


Link to post
Share on other sites
quote:
Original post by kuphryn
There definitely is a performance difference. VB/C# are designed for productivity, not performance. A C/C++ server will out-perform any VB/C# server.
But by how much? And does that performance benefit outweigh the higher development cost (lower productivity)?

And how about scalability to future platforms? The .NET runtime is still very young, yet quite competitive. Will optimizations and tweaks in the near future render them more performant that average C++?

It''s not quite as dismissive an issue as you seem to think.

@DarkZoulz:
Yes, there is a performance hit, but precise metrics are pretty tough to come by. Some estimates say the difference is only 3%, others say more. YMMV.

Share this post


Link to post
Share on other sites
quote:
Original post by kuphryn
A C/C++ server will out-perform any VB/C# server.


I don't think so. I've seen some horribly inefficient code in both C++ and C#. Well written C# code probably outperforms a lot of poorly written C++ code in a lot of instances.



[edited by - jonstelly on May 21, 2004 2:32:30 PM]

Share this post


Link to post
Share on other sites
quote:
Original post by Arild Fines
Isn't something like this network/IO-bound anyway?


Not always if a lot of computing is done on the server side. Then it could possibly make a difference.

Am I wrong?



DISCLAIMER: If any of the above statements are incorrect, feel free to deliver me a good hard slap!

My games: DracMan | Swift blocks

[edited by - JohanOfverstedt on May 21, 2004 3:14:32 PM]

Share this post


Link to post
Share on other sites
MMO game servers are VERY VERY performance sensitive ... more than anything else besides 3D graphics and physics engines right now ...

I don''t know the Managed C# vs. Unmanaged C++ numbers, because every peice of code will be different - and the MOST important decisions are design desicions, not language ones ... but language and library choices will likely still matter.

I highly recommend you create a very simply prototype test to throw a lot of packets at your server, and write a mock-up server each way ... then you will not only know if the performance is largely different, you will see if the development of one is significantly easier or not (for you).

Share this post


Link to post
Share on other sites
If you don''t mind the players taking smoke breaks while the GC does it''s job, then C# is the way.
Our server is written in C, and so far I am extremly happy with both the speed of the server and the speed of development.

Share this post


Link to post
Share on other sites
The Microsoft CLR garbage collector does not stop and collect everything, like a naive stop-and-collect collector would. It uses incremental, generational collection, with support from the OS to flag pages as dirty (needing consideration). Which is why redundant or scattered writes are a REALLY bad idea in C# (even more so than in C++, where it''s still a bad idea).

The problem with C# comes mostly in there being more layers of dispatch between the network driver and the application program, and the fact that the floating point code generation is pretty primitive. I know they''re working on the latter; they''ll have a hard time doing much about the former. If packet rate is your limiting factor, more layers will get in the way. If something else is the limiting factor, they might not matter.

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!