作为开发人员,我们都知道有两种做事方式:手动、慢速、烦人、复杂的方式,以及自动化、快速甚至更复杂的方式。
例如,我可以继续写这篇文章,说明为什么你应该使用Java而不是C++低延迟系统。我可以开始训练AI为我写。后一种方法最终会节省我很多写文章的时间——它可以产生数千每秒——但我的编辑不太可能很高兴听到第一篇文章要花我两年时间。
在开发低延迟软件系统时,也有类似的情况。人们所接受的智慧是,除了C++之外,你什么都不会疯狂,因为其他任何东西都有太高的延迟。但我在这里说服你相反,反直觉,几乎异端的概念:当涉及到实现低延迟的软件系统,Java更好。
在本文中,我想举一个软件的特定例子,对于低延迟是珍贵的:交易系统。但是,我在这里提出的论点几乎可以应用于任何需要或需要低延迟的情况。只是,在我有经验的发展领域,讨论这个问题更容易。事实是,延迟可能是一个棘手的事情来衡量。
这一切都归结到你对"低延迟"的定义上。让我解释一下。。。
接受的智慧
让我们首先研究一下为什么你应该选择C++来构建高速、低延迟系统的原因。
由于C++更接近金属,大多数开发人员会告诉你,在语言中编码有固有的速度优势。在低延迟的情况下,如高速交易,微秒可以区分一个可行的软件和过时的磁盘空间浪费,C++被视为黄金标准。
或者至少是,从前是这样。现实情况是,如今,许多大型银行和经纪商使用用爪哇语编写的系统。我的意思是写在Java-不是写在爪哇,然后