用于服务器应用程序的C++与Java

Kra*_*rab 6 c c++ java latency

我需要制作低延迟服务器,其中原始数据吞吐量不如处理数千个同时连接的能力重要.我不知道使用什么语言.Java更简单,开发将更快,更好的接口,我需要的所有+良好的网络支持(JAVA NIO和选择器类).但实际上我对java在编程方面没有多少经验,所以即使我读过java这样的东西今天不比原生C/C++慢,但仍然对性能有些怀疑,因为c/c ++被编译成二进制代码,但是java .class文件被解释,因此在翻译中必须有开销.

  • 有人可以发表自己的经历吗?
  • 是否有人编写低延迟应用程序?
  • 你的意思是更好地用于那种类型的应用程序?

编辑:应用程序将是服务器实时支持Web应用程序(如聊天等)

Pet*_*rey 18

通常人们想要一个低延迟的应用程序,所以我不知道你的低延迟是什么意思.

所以,即使我读过java这样的东西,今天也不比原生的C/C++慢

它仍然稍微慢一些,大部分时间都不够重要.

例如,无论您使用何种语言,网络IO都是网络IO.例如,除了最极端的低延迟情况外,该语言不会使您的网络更快或更慢.

,因为c/c ++被编译为二进制代码,但java .class文件被解释,

Java在运行时编译为本机代码,因此系统最终都会运行本机代码.

所以翻译必须有开销.

启动时有一个开销.但是一旦应用程序运行,影响就会小得多.

有人设置高延迟应用程序?

如果您的网络具有高延迟,则您的语言不太重要.

你的意思是更好地用于那种类型的应用程序?

我建议你使用你最熟悉的语言.

应用程序将是服务器,以便在Web应用程序上实时支持

在这种情况下,如果您已正确编码,则网络延迟可能远远高于应用程序的延迟.


为了给您一个广泛的想法,典型的互联网连接的延迟为5 - 20毫秒.典型用户只能以50毫秒的延迟做出反应.延迟为20 - 50 ms的服务器几乎可以用任何语言编写.延迟为200 - 500微秒的服务器可以用Java或C++编写.如果您希望少于100微秒,包括客户端的延迟,您正在寻找专用硬件和一些C++代码用于您的核心引擎.在这种情况下,服务器和消费者可能在同一建筑物内,如果不是同一个机架.