加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

在Erlang比单线程Java更快之前,需要多少CPU

发布时间:2020-12-14 16:38:37 所属栏目:Java 来源:网络整理
导读:我目前正在使用 Java,我已经在网上阅读了很多关于Erlang的内容,我有两个大问题: Erlang会比Java简单多少(如果有的话)? 我在这里假设Java将从shootout benchmarks在网上更快(Erlang不这样做).那么,我需要多少个CPU来使Erlang能够在单线程Java上发光(在下面
我目前正在使用 Java,我已经在网上阅读了很多关于Erlang的内容,我有两个大问题:

> Erlang会比Java简单多少(如果有的话)?
我在这里假设Java将从shootout benchmarks在网上更快(Erlang不这样做).那么,我需要多少个CPU来使Erlang能够在单线程Java上发光(在下面给出的特定情况下)?
>在阅读关于Erlang一段时间之后,我遇到了一些评论/帖子,说大多数大型Erlang系统包含大量的C/C++.
这是为了速度的原因(我的假设)还是别的什么?为什么要这样?

我已经阅读了大多数机器上的处理器数量,线程模式很难(我同意),但是我正在寻找何时将“线路”跨越,以便我可以在右边更改语言/范例时间.

一点背景/背景:
我在服务器端工作在Java服务上,这些服务非常CPU限制并且容易并行.这通常是通过一次传入的更新(通过TCP)触发对多个(100s)输出的改变.

计算通常很简单(几个循环,只是很多算术),输入速度相当快(100 / s).

目前,我们正在运行4台CPU机器,并在每个机器上运行多个服务(因此多线程是非常无意义的,而Java似乎运行速度更快,而不需要同步块等)来实现多线程).现在有一个很强的推动速度,我们现在可以访问24个处理器机器(如果需要,每个进程),所以我想知道如何最好地继续 – 大规模多线程Java或更容易编码的东西,如Erlang.

解决方法

由于这是一个算术繁重的工作负载,您已经完成将代码分解为单独的服务过程的工作,您不会从Erlang获得很多收益.你的工作似乎很适合Java. Erlang善于微小的交易 – 例如msg切换或提供静态或简单动态网页.不是在企业号码处理或数据库工作负载.

但是,您可以使用外部数字库和数据库,并使用Erlang作为MSG交换机:D这是couch-db所做的:P

– 编辑 –

>如果将算术运算移动到Erlang异步IO驱动器中,erlang将与语言拍摄的东西一样好 – 但是使用24 cpu也许并不重要; erlang数据库是程序性的,因此相当快 – 这可以在您的应用程序中被利用,每个事务更新100个实体.
> erlang运行时系统需要是C和C的混合,因为(a)erlang仿真器是用C/C++编写的(你必须从某个地方开始),(b)你必须和内核交谈来做异步文件和网络io,(c)系统的某些部分需要快速起泡 – 数据库系统的后端(健忘).

– 讨论 –

使用共享内存总线的6核* 4 CPU拓扑中的24个CPU – 您有4个NUMA实体(CPU)和一个中央内存.你需要对范式有所了解,无共享的多进程方法可能会杀死你的内存总线.

要解决这个问题,您需要创建具有6个处理线程的4个进程,并将每个处理线程绑定到相应CPU中的相应核心.这6个线程需要进行协作多线程 – Erlang和Lua都有这样的特性 – Erlang以硬核方式做到这一点,因为它具有一个完整的调度程序作为其运行时的一部分,它可以用来创建多个根据需要进行处理

现在,如果要在4个进程中分配任务(每个物理CPU 1个),那么您将是一个快乐的人,但是您正在运行4个Java VM(可能是)认真的工作(因为许多原因).需要解决的问题是更好的切片和切割问题的能力.

在Erlang OTP系统中,它是专为冗余的强大的网络系统而设计的,但现在正在向同一机型的NUMA-esque CPU运行.它已经有一个踢脚踢SMP模拟器,它将很快成为NUMA感知.通过这种编程模式,您可以有更好的机会使您强大的服务器饱和,而不会对您的公共汽车造成伤害.

这个讨论也许是理论上的;然而,当您获得8×8或16×8拓扑结构时,您也将为此准备好.所以我的答案是当你的主板上有两个现代的物理CPU时,你应该考虑一个更好的编程范例.

作为以下讨论的主要产品的示例:Microsoft’s SQL Server is CPU-Level NUMA-aware in the SQL-OS layer,数据库引擎在其上构建.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读