美文网首页
并发模式对比:akka和goroutine

并发模式对比:akka和goroutine

作者: 周一不上班 | 来源:发表于2018-06-04 16:51 被阅读55次
    模式 平台 占用内存大小 轻量否? 同步机制 分布式
    akka(actor) JVM 400 Bytes 消息传递 支持
    goroutine Native 2K Bytes 消息传递 不支持
    Java Thread JVM 1M Bytes 共享变量 不支持

    计算密集型性能对比

    通过级数计算PI的值,来比较Java线程,akka和goroutine之间的性能差异。

    测试环境:

    • 1.4Ghz intel core i5 双核
    • 内存8G
    akka-go-thread.png

    结果分析

    从以上的性能对比过后,发现在计算密集型的场景下,轻量与不轻量并没有产生性能上的巨大差异。这是为什么呢?问题就在计算密集型上,每个Actor或者goroutine或者Thread往往从创建到计算完成后被销毁,时间跨度上都很小,计算任务被提交之后,cpu足够快,往往不等被争夺cpu就计算完成,所以上下文切换几乎没有。而且Java线程通过线程池来维护线程,避免了创建和销毁线程的额外开销。

    todo

    IO密集型

    完整代码

    akka
    goroutine

    相关文章

      网友评论

          本文标题:并发模式对比:akka和goroutine

          本文链接:https://www.haomeiwen.com/subject/kzfhsftx.html