美文网首页
GopherChina2017-7 GC、协程、并发效率

GopherChina2017-7 GC、协程、并发效率

作者: kree | 来源:发表于2017-04-16 23:40 被阅读0次

广发证券:

金融系统最关心高并发的效率问题

关注GC效率


go没有在gc过程进行压缩,为了跟cgo等对接,性能弱于java


解决办法


支持并发的数据结构
解决协程并发导致缓存失效问题


解决办法,CPU引用计数汇聚,


使用多级hash,达到近似无锁

  • 多级哈希只锁访问的那个单元,增删都不涉及其他它元数据,所以无相关锁,这是个空间换时间的问题
  • 每一级足够大就不容易冲突进入下一级,多个goroutine通常不会访问同一个单元,所以单元里面的锁就不会冲突,实际使用的时候达到近似的无锁并行
  • 实际使用了8级hash,达到8级说明每一级的长度太小了要改大,或者机器扩容

融合替代方案


CGO线程与Go交互存在栈拷贝,频繁创建效率低

网络底层优化
MTU由默认的1500调到9000


网卡支持分片就打开


问题分享
Docker里网卡的分片设置和host虚拟机上的分片设置不一样,导致数据包校验出错


对象池的大小如何确定?
根据监控系统结果来确定

对象池放满了怎么办?
通过这个select来避免这种情况


相关文章

  • GopherChina2017-7 GC、协程、并发效率

    广发证券: 金融系统最关心高并发的效率问题 关注GC效率 go没有在gc过程进行压缩,为了跟cgo等对接,性能弱于...

  • Go 并发编程:Goroutine常见应用范式

    一、多独立协程并发——worker分工模式 并发协程独立运行且互不通信,主协程等待处理独立子协程的结果 并发编程有...

  • 第六天

    一、并发编程 并发与并行(并发时间片轮询)资源竞争 1、goruntine协程 主协程退出了其他协程也跟着退出 主...

  • 关于协程开发

    协程: 1.什么是协程 协程,经常被称为微线程,纤程,是一种多任务并发的操作手段定义:协程是运行在单线程中的并发程...

  • Go Goroutine

    协程并发 Go并发 什么是goroutine

  • 【Go 精选】并发编程实战 - 协程

    1.协程的概念 Go 应用程序并发处理的部分被称作 goroutines(协程),可以进行更有效的并发运算。协程是...

  • Kotlin 并发编程之"协程"

    Kotlin 并发编程之"协程" Kotlin协程简介 Kotlin, as a language, provid...

  • 36.Python并发编程之协程

    Python并发编程之协程 协程协程是程序级别的概念,操作系统根本就没有协程的概念!!!协程的本质就是一条线程,可...

  • 深入理解kotlin协程-挂起篇

    前言 协程是一种并发设计模式(接下来我所说的协程均指kotlin协程),利用协程我们可以简化异步执行的代码,但在使...

  • 写给Android开发者的协程基本原理

    前言 协程是一个并发方案。也是一种思想。 传统意义上的协程是单线程的,面对io密集型任务他的内存消耗更少,进而效率...

网友评论

      本文标题:GopherChina2017-7 GC、协程、并发效率

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