Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.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# 从C移植的托管C++代码会比原C更快吗?(tcp服务器)_C#_.net_C++_Performance_Translation - Fatal编程技术网

C# 从C移植的托管C++代码会比原C更快吗?(tcp服务器)

C# 从C移植的托管C++代码会比原C更快吗?(tcp服务器),c#,.net,c++,performance,translation,C#,.net,C++,Performance,Translation,因此,我们创建了用于视频共享的简单C tcp服务器。它所做的一切都很简单,并且应该是终身接收的,在我们的情况下,从一些广播公司将实时视频打包到容器FLV中,并与所有订阅者共享接收到的流,这意味着打开容器,创建新的容器,在容器结构上制作时间戳,但不以任何方式解码数据包的内容。我们测试了我们的服务器,但发现它的性能不足以支持5条传入流和10条传出流。为移植找到Fe。我们将尝试任何方式,但在我们尝试之前,我想知道你们中是否有人在你们的任何项目上尝试过这样的事情。所以主要问题是C++ CLI会使应用程序

因此,我们创建了用于视频共享的简单C tcp服务器。它所做的一切都很简单,并且应该是终身接收的,在我们的情况下,从一些广播公司将实时视频打包到容器FLV中,并与所有订阅者共享接收到的流,这意味着打开容器,创建新的容器,在容器结构上制作时间戳,但不以任何方式解码数据包的内容。我们测试了我们的服务器,但发现它的性能不足以支持5条传入流和10条传出流。为移植找到Fe。我们将尝试任何方式,但在我们尝试之前,我想知道你们中是否有人在你们的任何项目上尝试过这样的事情。所以主要问题是C++ CLI会使应用程序比原来的C更快吗?p> 没有

用不同的语言编写相同的代码不会有任何区别;它仍将编译为相同的IL

C语言不是一种慢语言;您可能有一些更高级别的性能问题。
您应该优化现有代码。

否-根本不需要。C++/CLI与C在相同的.NET平台上运行,有效地防止了纯粹通过更改语言来提高速度。另一方面,本地C++可以带来一些好处,但最好还是非常小心。你很可能从一个剖析者那里获得性能上的好处,而不是改变语言,你应该只考虑对语言和代码的广泛测试后改变语言。

不适用于大多数代码,但是如果代码做了大量的位级操作。同样,如果您可以安全地使用非托管内存来重用垃圾收集器上的负载


<> P> >对C++进行代码转换,这对大多数代码来说是不太可能的,但是,托管C++可以让您编写更复杂、不安全的代码,运行速度更快。然后,至少使用IJW将这些回调机制转换为C++/Cli,这会稍微提高性能。

我怀疑您可以用这两种方式编写好的和坏的代码。。。如果不检查C,很难说是否有另一种方法可能只是修复一些次优的C。您是否分析了代码以找出循环的使用位置?你可以支持的客户端看起来是低的,但是W/O知道挤点在哪里,你猜。我可以保证你把C转换成C++的程序不会像刚才用手工转换成C++的程序那样好。它听起来像代码本身就是问题,或者硬件是问题。C++级别的操作比C++ C++中的快,这是相同的IL。@ SLAKS,假设你只使用管理C++,而不使用任何非托管C/C++,混合这两个是托管C++进入的地方。但你不会从自动转换器那里得到。