百科问答小站 logo
百科问答小站 font logo



如何评价 Golang 1.5 更新? 第1页

  

user avatar   yangzhe1991 网友的相关建议: 
      

我觉得最大的意义应该是1.5的GC的STW时间明显下降了。从我之前在

wandoulabs/codis · GitHub

的测试结果来说,client并发数比较低的时候最大延迟基本上取决于STW的时间,在我自己的macbook上测,1.3和1.4的最大延迟是4ms和7ms,而1.5不到1ms。为了实现并发收集,1.4里给指针加了个write barrier从而影响了性能,然而1.4的并发收集又没做,于是1.4变成了一个半成品,性能(吞吐)很多场景比1.3差,而GC的停顿时间又没减少,非常蛋疼……

另外那条“默认 Go 程序使用 GOMAXPROCS 变量来设置CPU核数,之前默认是1”,并不是单纯的一个默认值的改动让你减少一行蛋疼的代码这么简单。他基于一个前提是现在goroutine的调度器的性能已经越来越好。见

docs.google.com/documen

,如果调度器性能不行,在一些场景可能会出现一种情况,就是在goroutine数量相同的情况下,用的CPU越多也就是开的线程越多,性能反而变差(见里面的表格)。而go的开发者目前认为,1.5的调度器性能nb了很多,在各种测试场景上已经不会导致多核比单核还差很多,于是改了默认值。




  

相关话题

  golang如何令程序在go关键字修饰的方法(函数) 执行完成后 再结束? 
  如何看待 John Martinis 离开谷歌? 
  为啥 Erlang 没有像 Go、Scala 语言那样崛起? 
  2016年,你读过的最好的IT技术书有哪几本? 
  Go1.6中的gc pause已经完全超越JVM了吗? 
  如何看待谷歌「夜莺计划」被曝光,医生患者不知情前提下被秘密采集数百万医疗隐私数据一事,是否属实? 
  谷歌的 Hugo Barra 离职加入小米是什么情况? 
  为什么有些编程语言的数组要从零开始算? 
  Google 为什么要成立旨在抵抗衰老的 Calico 公司?是心血来潮吗? 
  Go语言中如何检测一个channel已经被关闭了? 

前一个讨论
为什么日本没像德国那样对发动二战做出正式忏悔?
下一个讨论
大礼议中为什么杨廷和一定要让嘉靖认孝宗为父?究竟争的是什么?





© 2025-04-24 - tinynew.org. All Rights Reserved.
© 2025-04-24 - tinynew.org. 保留所有权利