Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.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++;为什么';这不是行业的其他部分吗? 这是一个事实,几乎每个AAA视频游戏都是用C++编写的,它是为PC、Xbox或PS3发布的。一些供应商说,他们无法移动到C语言,因为他们内部重用的各种引擎的大代码库已经在C++(物理、渲染等)中构建和测试。就性能而言,这是一个普遍接受的事实 请重申:为什么专业游戏开发行业一般使用C++,为什么我们不呢?是因为业务应用的一般线不需要“最佳性能”,而且交易可靠性(内存泄漏、OOBs、堆栈溢出)对于性能“不重要”?还是因为C++通常比C语言中编写的代码更难维护(模板、指针、Maloc等)? 还是因为C++中的开发比在C语言中开发相同的FuffueRead要花费时间,所以你不能实现你想要的多个特性?但即使在今天,许多高端游戏开发包,如,和完全是在C++中编写的,它们是在任何平台上都能得到的最好的。那么,如果C++对于这些公司不是“更难”或“限制”或“BugGig”,那么为什么游戏开发或科学/高性能产业之外使用的那么少?P>短:C或C++给了你在更低的层次上工作更多细节的积极性,这样你就可以从哪里得到性能和内存增益,这是非常必要的,因为一个游戏需要相当高的性能要求来不断地绘制和重画_C#_C++_.net_Performance_Comparison - Fatal编程技术网

C# 为什么游戏开发人员使用C++;为什么';这不是行业的其他部分吗? 这是一个事实,几乎每个AAA视频游戏都是用C++编写的,它是为PC、Xbox或PS3发布的。一些供应商说,他们无法移动到C语言,因为他们内部重用的各种引擎的大代码库已经在C++(物理、渲染等)中构建和测试。就性能而言,这是一个普遍接受的事实 请重申:为什么专业游戏开发行业一般使用C++,为什么我们不呢?是因为业务应用的一般线不需要“最佳性能”,而且交易可靠性(内存泄漏、OOBs、堆栈溢出)对于性能“不重要”?还是因为C++通常比C语言中编写的代码更难维护(模板、指针、Maloc等)? 还是因为C++中的开发比在C语言中开发相同的FuffueRead要花费时间,所以你不能实现你想要的多个特性?但即使在今天,许多高端游戏开发包,如,和完全是在C++中编写的,它们是在任何平台上都能得到的最好的。那么,如果C++对于这些公司不是“更难”或“限制”或“BugGig”,那么为什么游戏开发或科学/高性能产业之外使用的那么少?P>短:C或C++给了你在更低的层次上工作更多细节的积极性,这样你就可以从哪里得到性能和内存增益,这是非常必要的,因为一个游戏需要相当高的性能要求来不断地绘制和重画

C# 为什么游戏开发人员使用C++;为什么';这不是行业的其他部分吗? 这是一个事实,几乎每个AAA视频游戏都是用C++编写的,它是为PC、Xbox或PS3发布的。一些供应商说,他们无法移动到C语言,因为他们内部重用的各种引擎的大代码库已经在C++(物理、渲染等)中构建和测试。就性能而言,这是一个普遍接受的事实 请重申:为什么专业游戏开发行业一般使用C++,为什么我们不呢?是因为业务应用的一般线不需要“最佳性能”,而且交易可靠性(内存泄漏、OOBs、堆栈溢出)对于性能“不重要”?还是因为C++通常比C语言中编写的代码更难维护(模板、指针、Maloc等)? 还是因为C++中的开发比在C语言中开发相同的FuffueRead要花费时间,所以你不能实现你想要的多个特性?但即使在今天,许多高端游戏开发包,如,和完全是在C++中编写的,它们是在任何平台上都能得到的最好的。那么,如果C++对于这些公司不是“更难”或“限制”或“BugGig”,那么为什么游戏开发或科学/高性能产业之外使用的那么少?P>短:C或C++给了你在更低的层次上工作更多细节的积极性,这样你就可以从哪里得到性能和内存增益,这是非常必要的,因为一个游戏需要相当高的性能要求来不断地绘制和重画,c#,c++,.net,performance,comparison,C#,C++,.net,Performance,Comparison,但是,在业务线应用程序中通常不需要这些详细信息,因为首先,它们不会执行大量需要密集工作的“操作”,因此允许使用托管代码,即使这会给您带来某些惩罚,但它们不是很明显,因为物理工作量较低。因此,关键是要为正确的工作使用正确的工具。你不需要使用滑板车进行农业生产,也不需要拖拉机来运送比萨饼。你总是需要优化应用程序的瓶颈 在游戏中,引擎的速度对应用程序的性能至关重要。因此,优化在这里是有意义的 在一个业务线应用程序中,它花费X ms等待数据库查询的执行,而Y主要不是语言,而是平台 在.Net中,您不能使

但是,在业务线应用程序中通常不需要这些详细信息,因为首先,它们不会执行大量需要密集工作的“操作”,因此允许使用托管代码,即使这会给您带来某些惩罚,但它们不是很明显,因为物理工作量较低。因此,关键是要为正确的工作使用正确的工具。你不需要使用滑板车进行农业生产,也不需要拖拉机来运送比萨饼。

你总是需要优化应用程序的瓶颈

在游戏中,引擎的速度对应用程序的性能至关重要。因此,优化在这里是有意义的


在一个业务线应用程序中,它花费X ms等待数据库查询的执行,而Y主要不是语言,而是平台

在.Net中,您不能使用SSE,您使用GPU的能力是有限的;一些无锁多线程算法只能在本机代码中按照最初的预期(版本化指针)实现(如果多线程很重要,高效的无锁结构可以极大地提高速度);在.Net中,内存管理是自动的,而在高性能场景中,您可以通过微管理内存(不同对象类型的单独小堆)获得巨大的速度优势,并且您可以通过内存进行向量化-它还链接回SSE,在那里,您经常会有多个指针通过大缓冲区进行向量化,将值输入SSE操作

仅举几个例子

这些都是业务应用程序通常不关心的事情,因为如果性能在这个级别上真的很关键,那么它很可能是运行在其上的服务器(桌面应用程序不太可能——即使在交易场景中,它也可能是需要实时的服务器),而一个需要这种表现的企业只会扔掉一台速度更快的机器;或者一个刀片中心

在零售游戏环境中,它必须在许多不同的硬件配置上工作,因此尝试从用户正在运行的任何硬件中挤出最后一点性能是有意义的

<> P>我想更多的答案是为什么C++被用来编码大多数游戏,而不是为什么.NET在商业中无处不在——当然,缺乏对这种性能潜力的需求是一个因素,当然,我认为开发周期短(一般来说)。然而,还有更多的因素


不过,在某些方面,这就像把苹果比作牛。您可以选择最适合问题的技术

为什么要投否决票?我几乎已经提到了我所说的每一点。总是带着一丝怀疑去做性能测试。程序员。可能是stackexchange?谁是“我们”?如果你认为C++只用于“游戏开发”或“科学/高性能产业”,那么你需要更难地搜索。我每天都使用C++来做嵌入式系统。为什么GPU有限?我不能在我的GPU上用C做什么?好吧,也许GPU编码很容易理解…:-)如果您正在使用一些API,如OpenGL/CUDA/etc,您也可以在C中完成这一切。:-)是的,虽然我认为如果我这样做,我会走本地路线——也许使用C++ + CLI作为桥梁——因为工具和文档在C++环境中更为重要。