Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#插座vs C#x2B+;插座,哪个更好?_C#_Sockets - Fatal编程技术网

C#插座vs C#x2B+;插座,哪个更好?

C#插座vs C#x2B+;插座,哪个更好?,c#,sockets,C#,Sockets,我有一个必须在.Net平台上开发的服务器端项目,但我怀疑c#socket的性能,一些人告诉我c#应用程序总是消耗大量内存,特别是在实时不断交换大量数据时。内存数据回收太慢。有人对C#socket性能有什么看法吗?我会坚持使用C#层。从错误处理的角度来看,这是一个更安全的环境,我认为如果套接字和线程模型制作得当(就像在C++中一样),您不会看到显著的性能影响。C#套接字没有明显的性能损失 除非你的应用程序经常被CPU绑定,否则你将受益于C语言解决方案所隐含的安全性,而不是非托管C++的任何性能优势

我有一个必须在.Net平台上开发的服务器端项目,但我怀疑c#socket的性能,一些人告诉我c#应用程序总是消耗大量内存,特别是在实时不断交换大量数据时。内存数据回收太慢。有人对C#socket性能有什么看法吗?

我会坚持使用C#层。从错误处理的角度来看,这是一个更安全的环境,我认为如果套接字和线程模型制作得当(就像在C++中一样),您不会看到显著的性能影响。

C#套接字没有明显的性能损失


除非你的应用程序经常被CPU绑定,否则你将受益于C语言解决方案所隐含的安全性,而不是非托管C++的任何性能优势。有些人可能会说C#具有更好的内置功能,因为它包装和封装得更好。对我来说,这是个人的选择。在.NET中启动新项目时,我选择C#。在一个旧的应用程序中,我使用C++ Builder 5,它具有Socket通信,它和C版本一样快,并且执行得恰到好处。在C++版本中(封装为C语言),有一些事件由于网络连接的丢失或套接字上的其他错误而提供错误处理。我的底线是,我不会将应用程序的语言选择基于套接字。使用C。管理C++充其量是坏的。无论如何,如果您正在设计服务器端应用程序,资源使用率(例如)不会是指数级的。无论使用什么套接字实现,都可以像升级一样线性升级


最后,你可以通过向它扔硬件来修复它。

“一些人”显然对.NET没有充分的理解和知识。你清楚地了解.NET垃圾收集器流程吗?它的弱点是什么?如何避免这个弱点?C#通常更容易。C#socket不需要注意内存泄漏吗?在为您处理内存和防止泄漏方面,.NET framework做得非常好