1

我运行一个大型的 Minecraft 服务器,Minecraft 服务器端是单线程的。一切都在主游戏循环中完成。如果 Mojang 让 Minecraft 服务器端多线程,Minecraft 服务器每年可以通过租用更少的硬件来节省 200 万美元。

无论如何,我听说过这些谣言和理论。我从来没有能够谷歌它并弄清楚。

无论如何要采用多核cpu,并将其转换为单核单线程?

我一直在推测虚拟机管理程序软件将运行多线程,如果它可以配置为单核,它会将多核转换为单核。

我带着这个想法找到了我的 Java 程序员朋友。他告诉我这是不可能的,因为每个线程都不可能知道该做什么。我不记得他具体说了什么,但他基本上说这是不可能的。

Minecraft 服务器每月花费超过 700 美元租用超频至 4.5 ghz 的硬件。为什么?因为默认服务器的成本为 100-150,价格为 3.8 到 4.5。

超频的服务器将单线程性能提高 1/8。这将导致服务器容纳更多玩家。服务器可以容纳的玩家越多,它可以赚的钱就越多。

因此,与其购买超频服务器,不如购买 quad proq E5 服务器并将它们连接到一个线程中,从而打破性能和玩家数量的所有记录。

我知道最有效的方法是让 mojang 使 minecraft 多线程。这将需要完全重写所有代码。

他们不想那样做。我的世界帐户费用为 26 美元。他们已经卖出了2000万。他们在滚滚财源滚滚,进行愚蠢的内容更新,而不是将我的世界服务器修复为多线程。

甚至我的世界游戏客户端也不是多线程的。

那么问题来了,是否可以组合多个cpu核心来实现神级的单线程性能呢?如果是这样,如何?

我听说可以做到,但开销会很疯狂。

无论如何计算开销?

4

2 回答 2

2

如果有办法做到这一点,我们就会这样做。问题很简单——我们正在运行的程序只为我们提供了一个指令流。

想象一下一个人为早上准备工作所经历的步骤。他们起床、洗澡、穿衣、做早餐、吃早餐等等。有了完整的步骤列表,如果您有不止一个人,您可能会找到重叠任务的有效方法。例如,一个人可以在其他人做早餐时挑选衣服。但是,如果只在上一步完成时才告诉你每一步,那就没有希望了。

单线程代码仅在上一步完成时告诉您每一步。

于 2013-09-21T19:19:45.870 回答
0

Minecraft 需要完全重新编码,因为目前没有办法让一个不是为多核设计的程序使用一个以上的核心。幸运的是,几个小组实际上已经重新编码,其中 PaperMC 是最大的。但是,我不知道他们的多核项目是否真的成功了。一个名为 sodium for fabric 的 mod 以及 OptiFine 都允许在客户端上进行多核处理。你甚至可以在反馈.minecraft.net 上的建议网站上投票支持 Mojang。

于 2020-09-01T03:23:39.730 回答