C# 我应该在MMORPG模拟器中使用指针吗?

C# 我应该在MMORPG模拟器中使用指针吗?,c#,pointers,unsafe,C#,Pointers,Unsafe,我有一个MMORPG模拟器,这意味着它将处理相当多的数据包。 目前,我正在为此使用指针,因为我认为如果使用正确,它们可以加速我的服务器,但是我有两个朋友,一个告诉我使用指针,他认为我可以使用它们而不会遇到麻烦,我的其他朋友说我不应该使用指针,因为它们可能使我的服务器崩溃,它们不安全,而且它们也不容易管理 我将structs用于我的数据包结构,因此,例如,我可以使用以下行获取其类型: Ptr->Type 你认为呢?如果你知道自己在做什么,那么使用你提到的指针,将比任何其他形式的反序列化快得多。在某

我有一个MMORPG模拟器,这意味着它将处理相当多的数据包。 目前,我正在为此使用指针,因为我认为如果使用正确,它们可以加速我的服务器,但是我有两个朋友,一个告诉我使用指针,他认为我可以使用它们而不会遇到麻烦,我的其他朋友说我不应该使用指针,因为它们可能使我的服务器崩溃,它们不安全,而且它们也不容易管理

我将structs用于我的数据包结构,因此,例如,我可以使用以下行获取其类型: Ptr->Type


你认为呢?

如果你知道自己在做什么,那么使用你提到的指针,将比任何其他形式的反序列化快得多。

在某种程度上,它们都是对的。如果处理得当,指针会更快。另一方面,如果你没有正确地处理它们,它们会导致各种各样的问题


如果你认为自己已经掌握了这一点(而且你的朋友对指针了如指掌,他们愿意帮助你),那么就使用指针。

我认为你可能应该测试使用指针和不使用指针时的性能,然后亲自看看性能的提高(如果有的话)是否值得使用指针的额外复杂性


很有可能你们会发现你们的程序的大部分时间都花在坐在那个里,在等待网络流量的同时,无所事事。

+1因为这是真的,但也因为我很确定在那个里有一句双关语,关于如何处理指针。@fire.eagle:我认为这是值得称赞的,但直到你们指出,我才看到它(呻吟)我明白了。你是否也同意这会让我的项目变得一团糟,还是你不同意?@Basser:代码本身应该是相当干净的,因为指针符号并没有那么糟糕。然而,从逻辑上讲,这将是一件痛苦的事。如果你走指针路线,记录所有事情。如果你不得不休息几周,你会感谢自己项目。否则,你会回来,忘记一切都在做什么。那么你就有麻烦了。@AllenG:信念和真理之间的距离差异很大。好的建议。如果没有其他建议,最好让它在没有指针的情况下工作,这样就有了一个比较性能和正确性的基线。+1:简言之,CLR非常好该死的快,你可能会发现你永远不必求助于不安全的代码。+1:另外,很好的一点是,这很可能是一个IO绑定的应用程序,而不是CPU绑定的应用程序。