精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Go1.1新特性介紹(語言和庫更完善/性能提高約30%)

開發 開發工具 前端
BenchmarksGame的測試不同語言實現差別較大, 比如: Go的binary-trees開了很多goroutine, C的程序開了omp優化等.Go1.1的更新主要涉及 語言/實現/性能優化/標準庫幾個部分.

前幾天GCC4.8發布, 已經部分包含Go1.1特性, 詳細介紹:

根據golang-nuts的消息, 4月第1周可能會進入Go1.1發布流程(就是下周). 要修復的問題還剩20多一點的, 估計應該不會出現大的延期.

補充: Go1.1正式版本已經于2013.05.14正式發布.

補充: 目前還標記為Go1.1的剩余BUG主要是gccgo相關的, gccgo1.1的發布流程和GCC4.8.1同步.

Go1.1主要的目標是性能的優化和一些bug的修復, 詳細內容參考:

關于Go的性能測試數據(性能和C語言gcc -O2性能基本沒有差異):

補充: BenchmarksGame的測試不同語言實現差別較大, 比如: Go的binary-trees開了很多goroutine, C的程序開了omp優化等.

Go1.1的更新主要涉及 語言/實現/性能優化/標準庫幾個部分.

補充: Go1.1的二進制安裝包將包含gotour程序(啟動命令: go tool tour).

一、語言的改變

Go1發布時曾作出承諾, 保證在Go1.x發布后不會修改之前的語言特性. 這里有一些問題的修復, 還有一些新增加的特性.

整數除以零是編譯錯誤

在Go1中, 整數被一個常量0除會導致一個運行時 panic:

  1. func f(x intint {  
  2.     return x/0 
  3. }  

在 Go1.1 中, 整數被一個常量0將會被當作一個編譯錯誤處理.

Unicode代理區碼點不能用于面值

字符串和 rune 字面值的定義更加嚴格. Unicode代理區碼點不能用于面值. 細節請參考后面的 Unicode 章節.

方法值和方法表達式

Go1.1新實現了方法值(method values), 它是綁定到receiver值的一個閉包. 比如有一個實現了Writerw 值, 那么 w.Write 將等價于下面的閉包函數:

 

  1. func (p []byte) (n int, err error) {  
  2.     return w.Write(p)  
  3. }  

 

方法值(method values)不同于方法表達式(method expressions), 方法表達式是從一個類型對應的函數. 比如 (*bufio.Writer).Write 和下面的普通函數類型:

 

  1. func (w *bufio.Writer, p []byte) (n int, err error) {  
  2.     return w.Write(p)  
  3. }  

 

更新: 現有的代碼不需要更新, 這個是新加的特性.

GoSpec中給出了很多例子: 

 

  1. f := t.Mv; f(7)   // like t.Mv(7)  
  2. f := pt.Mp; f(7)  // like pt.Mp(7)  
  3. f := pt.Mv; f(7)  // like (*pt).Mv(7)  
  4. f := t.Mp; f(7)   // like (&t).Mp(7)  
  5. f := makeT().Mp   // invalid: result of makeT() is not addressable  

 

有了方法值, Go1.1可以從interface值中取出方法值(Go1.0不支持方法值):

 

  1. var i interface { M(int) } = myVal  
  2. f := i.M; f(7)  // like i.M(7)  

 

這樣改動的好處是類型的方法和interface方法完全統一了.

Return requirements

在Go1.1之前, 函數如果有返回值的話, 則最后必須有一個retune或panic語句.

 

  1. func abs(x intint {  
  2.     if x >= 0 {  
  3.         return x  
  4.     } else {  
  5.         return -x  
  6.     }  
  7. }  

 

會有以下編譯錯誤:

function ends without a return statement

之前一般可以在末尾加一個panic來回避這個問題:

 

  1. func abs(x intint {  
  2.     if x >= 0 {  
  3.         return x  
  4.     } else {  
  5.         return -x  
  6.     }  
  7.     panic("not reachable")  
  8. }  

 

在Go1.1規范, 對函數的終結語句做了定義:

主要有以下幾種類型:

  • return或者goto語句
  • 調用內置的panic函數
  • if語句: 必須帶else, 并且if和else部分都有明確的終結語句
  • for語句: 死循環的類型(無退出條件和break語句)
  • switch語句: 沒有break語句, 必須有default分支, 每個分支都有終結語句(或者是fallthrough到下個分支的終結語句)
  • select語句: 無break語句, 必須有default分支, 每個分支都有終結語句
  • 用于goto的Label

已有的代碼可以不用更新, 當然有些代碼可以寫的更簡化.

#p#

二、實現和工具的變化

 

gccgo的變化

上個月發布的 GCC 4.8.0 還沒有完整的包含 Go1.1. 確實的主要功能是沒有方法值, 標準庫也有一些差異. 可以期望5月份發布GCC4.8.1時, gccgo能夠完整支持Go1.1.

命令行參數解析

在目前的gc工具鏈中, 編譯器和連接器使用的是同樣的命令行參數解析規則, 基于Go語言的flag包實現. 和傳統的UNIX命令行習慣有些不同. 這可能影響直接調用GC工具的腳本. 例如, 原有的 go tool 6c -Fw -Dfoo 命令, 現在要這樣寫 go tool 6c -F -w -D foo.

64位系統 int 大小為int64

語言規范運行實現自由選擇 intuint 為32位或64位. 在之前的實現中, intuint都是32位. 現在, 在 AMD64/x86-64 平臺, GC和gccgo實現的intuint 都是64位的. 一個相關的變化是, 在64位系統切片將可以分配超出int32能表示的20多億個元素.

更新: 大部分代碼不受影響. 如果可能會影響涉及 int 類型轉換有關的代碼:

 

  1. x := ^uint32(0// x is 0xffffffff  
  2. i := int(x)     // i is -1 on 32-bit systems, 0xffffffff on 64-bit  
  3. fmt.Println(i)  

 

下面是一種可移植的寫法(-1在所有系統是可以確定的):

 

  1. i := int(int32(x))  

 

64位平臺的堆大小

對于64位平臺, 堆的最大上限擴大很大, 從幾個GB到幾十個GB(具體細節取決于系統,并且可能會更改).

在32位系統, 堆的大小沒有變化.

更新: 現有代碼沒有影響. 當時新程序可以使用更多的內存.

補充: Windows/amd64目前默認為32GB(以后會根據不同版本調整).

Unicode

主要是和UTF16相關的代理區碼點有關:

  • 代理區碼點不能用在字符/字符串面值中.
  • 代理區碼點的輸出也有變化

比如:

 

  1. import "fmt" 
  2.  
  3. func main() {  
  4.     fmt.Printf("%+q\n", string(0xD800))  
  5. }  

 

Go 1.0輸出為 "\ud800", Go 1.1 輸出為 "\ufffd".

Race detector

go tool內置數據競爭檢測工具. 目前只支持64位系統. 使用時需要指定-race選項.

比如以下的代碼, 在2個不同goroutine中競爭訪問m.

 

  1. func main() {  
  2.     c := make(chan bool)  
  3.     m := make(map[string]string)  
  4.     go func() {  
  5.         m["1"] = "a" // First conflicting access.  
  6.         c <- true 
  7.     }()  
  8.     m["2"] = "b" // Second conflicting access.  
  9.     <-c  
  10.     for k, v := range m {  
  11.         fmt.Println(k, v)  
  12.     }  

 

可以這樣測試:

 

  1. $ go run -race mysrc.go  // to run the source file 

 

補充: 檢測工具目前是基于LLVM的ThreadSanitizer race detector實現的.

gc assemblers

主要是為了適應64位系統int的默認大小變化, 和其他一些內部約定的變化.

go 的變化

go get時必須設置GOPATH, 并且GOPATHGOROOT不能相同.

補充: 建議兲朝用戶手工下載, 因為go get默認使用的https協議經常被墻.

go test 的變化

當啟動了剖析選項時, go test默認不在刪除二進制測試程序. 有專門的選項-cpuprofile:

 

  1. $ go test -cpuprofile cpuprof.out mypackage 

 

還有-blockprofile選項, 可以檢測goroutines被阻塞情況.

更多細節請參考: go help test

go fix 的變化

現在go fix將不再支持Go1之前的代碼到Go1的轉換. 如果需要處理Go1之前的代碼, 需要先使用Go1的工具做預處理.

新的構建約束

如果只在Go1.1+環境編譯, 可以設置以下構建選項:

 

  1. // +build go1.1  

 

如果是Go1.0.x的變化條件, 則是:

 

  1. // +build !go1.1  

 

新支持的平臺

Go1.1工具鏈實驗性的增加freebsd/arm, netbsd/386, netbsd/amd64, netbsd/arm, openbsd/386openbsd/amd64平臺的支持.

對于 freebsd/armnetbsd/arm 必須是ARMv6或更高的版本.

Go1.1對于linux/arm平臺實驗性的提供cgo的支持.

交叉編譯

交叉編譯時, 默認禁止CGO. 如果需要啟動CGO, 需要手工設置CGO_ENABLED=1.

三、性能優化

主要有以下幾個地方:

  • gc編譯器生成代碼優化, 特別是Intel 32-bit下的浮點運算
  • gc編譯器采用更多的內聯優化, 比如內置的append函數和interface的轉換等
  • map的一個改進實現, 顯著減少內存碎片和CPU時間
  • 在多核的CPU上, 可以并行的運行垃圾回收
  • 更精確的垃圾回收, 可以顯著減少堆的大小, 特別是在32位系統
  • 運行時和網絡庫配合更緊密, 減少上下文切換代價
  • 標準庫的優化

根據官方的說法, Go1.1性能提升基本有30%-40%, 有時更多(當然也有不明顯的情況).

補充: Windows版本很多優化的代碼還沒有合并進來, 特別是運行時/網絡部分.

四、標準庫的變化

  • reflect包功能完善: 實現了select的支持; 類型轉換支持; 變量到閉包的轉換; chan/map/slice的支持等.
  • 新加的包: go/format/net/http/cookiejar/runtime/race
  • 其他很多包的問題修復/功能完善/性能優化 等.

這個部分細節太多, 具體查看官方文檔吧.

原文鏈接:http://my.oschina.net/chai2010/blog/117984

責任編輯:林師授 來源: chai2010的博客
相關推薦

2013-05-15 09:51:03

GoGo1.1性能測試

2013-04-01 10:22:21

GoGo 1.1

2025-01-06 09:18:04

2025-04-14 00:00:00

2013-05-22 09:38:03

GoGo語言Go性能

2013-05-15 09:27:58

2019-11-07 15:24:46

PythonGo語言編程語言

2013-07-11 09:29:24

J2EE7

2022-02-11 21:01:18

GoNetip網絡庫

2010-09-17 10:29:51

IntelAMD

2025-02-12 08:50:22

2025-01-20 08:51:32

2025-04-29 08:59:37

2021-09-05 18:25:30

Go命令倉庫

2024-04-18 08:04:47

ElectronChrome升級

2022-04-24 15:55:22

Go語言語言函數

2012-03-14 12:29:55

JavaPlay Framwo

2021-04-30 19:53:41

Java表達式代碼

2024-01-22 00:30:00

Go編程Go 1.22

2021-07-15 23:18:48

Go語言并發
點贊
收藏

51CTO技術棧公眾號

人人干在线观看| 天堂av在线网站| 四季av日韩精品一区| 国产精品五区| 精品国产自在精品国产浪潮| 熟妇女人妻丰满少妇中文字幕| 国产色播av在线| 中文一区二区完整视频在线观看| 亚洲在线免费看| 中文字幕精品三级久久久| 日韩中文欧美| 日韩成人在线电影网| 奇米影视四色在线| 激情国产在线| 亚洲精品亚洲人成人网| 欧美精品尤物在线| xxxx18国产| 青青草成人在线观看| 久久久天堂国产精品女人| jizz18女人高潮| 国产精品sss在线观看av| 欧美性大战久久久久久久| 国产欧美日韩小视频| 成年在线观看免费人视频| 成人精品一区二区三区四区 | 久久丫精品忘忧草西安产品| 免费观看亚洲天堂| 在线观看免费视频综合| 久久综合久久久久| 毛片在线不卡| 国产精品美女久久久久aⅴ国产馆| 久久久综合亚洲91久久98| jizz中国少妇| 精品一区二区久久| 国产精品高潮呻吟久久av黑人| 久久久久久蜜桃| 先锋资源久久| 色偷偷9999www| 最新中文字幕av| 亚洲影院天堂中文av色| 精品粉嫩超白一线天av| 日本一区二区三区在线免费观看| 精品久久99| 欧美性生活一区| 欧美视频第一区| 欧美日韩在线观看首页| 亚洲丶国产丶欧美一区二区三区| 69精品丰满人妻无码视频a片| 欧美色欧美亚洲另类七区| 日韩xxxxxxxxx| 欧美久久影院| 久久99国产综合精品女同| 自拍偷拍第9页| 日韩理论电影| 色悠悠久久久久| 一二三四国产精品| 不卡日本视频| 中文字幕日韩精品有码视频| 亚洲精品午夜视频| 国产调教一区二区三区| 亚洲欧美在线x视频| 国产三级视频网站| 中国av一区| 亚洲性线免费观看视频成熟| 久久成人激情视频| 欧美系列电影免费观看 | 91久久在线观看| 国产精品久久综合青草亚洲AV| 国产资源精品在线观看| 51国偷自产一区二区三区| 精品久久久无码中文字幕| 国产乱码精品1区2区3区| 91在线中文字幕| 丰满熟妇乱又伦| 99re热这里只有精品视频| 久久久综合香蕉尹人综合网| 国产98在线| 国产精品国产三级国产aⅴ中文| 欧美 另类 交| 国产蜜臀在线| 色噜噜狠狠色综合欧洲selulu| 国产高潮免费视频| 成人在线日韩| 亚洲国产成人精品一区二区| 国产jjizz一区二区三区视频| 色综合色综合| 欧美激情一二三| 91午夜精品亚洲一区二区三区| 美女视频黄 久久| 亚洲直播在线一区| 香港三日本三级少妇66| 中文字幕av在线一区二区三区| 黄色影视在线观看| 理论片午夜视频在线观看| 欧美最猛黑人xxxxx猛交| 亚洲成人av免费观看| 秋霞蜜臀av久久电影网免费| 最近2019中文字幕第三页视频| 久草中文在线视频| 性欧美xxxx大乳国产app| 国产精品丝袜视频| 欧美 日韩 国产 在线| 国产午夜精品美女毛片视频| 高清无码一区二区在线观看吞精| 三上悠亚国产精品一区二区三区| 欧美一级二级三级蜜桃| 91中文字幕永久在线| 亚洲影视一区二区三区| 日本一区二区三区在线播放| www.色婷婷.com| 日本一区二区免费在线| 99在线免费视频观看| 久久人体av| 亚洲女同性videos| 久热精品在线观看| 久久精品国产色蜜蜜麻豆| 精品国产一区二区三区麻豆免费观看完整版| a√在线中文网新版址在线| 香蕉乱码成人久久天堂爱免费| 波多野结衣xxxx| 亚洲大片精品免费| 欧美精品videosex性欧美| 亚洲中文一区二区三区| 91玉足脚交白嫩脚丫在线播放| 9l视频自拍9l视频自拍| 91成人抖音| 亚洲精品一区av在线播放| 久久国产免费观看| 国产麻豆成人精品| 一级二级三级欧美| 中文字幕一区久| 亚洲国产精品推荐| 久久久久99精品成人片毛片| 精品一区二区久久| 亚洲三区在线| 无人区在线高清完整免费版 一区二| 亚洲高清久久久久久| 欧美成人片在线观看| 久久99精品视频| 日韩欧美手机在线| 男人最爱成人网| 日韩风俗一区 二区| 久草视频在线观| 成人蜜臀av电影| 国产精品一色哟哟| 亚洲精选av| 欧美精品videos| 免费国产精品视频| 亚洲国产一区在线观看| 最新版天堂资源在线| 黑丝一区二区三区| 国产精品夜夜夜一区二区三区尤| 午夜在线激情影院| 欧美va亚洲va| 国产午夜免费视频| 波多野结衣一区二区三区| www在线观看免费| 久久久久久毛片免费看| 97视频色精品| 免费毛片在线| 欧美婷婷六月丁香综合色| 摸摸摸bbb毛毛毛片| 六月丁香综合在线视频| 在线观看精品视频| 日本高清精品| 久久人人看视频| 色视频在线观看福利| 色婷婷av一区二区三区gif| 天天躁夜夜躁狠狠是什么心态| 日本强好片久久久久久aaa| 亚洲成色最大综合在线| 99精品视频在线免费播放| 欧美精品午夜视频| 免费看黄网站在线观看| 日韩欧美在线观看视频| 你懂得视频在线观看| 激情综合色综合久久| 91亚洲精品国产| 日韩在线影视| 国产精品尤物福利片在线观看| 在线视频国产区| 亚洲国产精品久久91精品| 区一区二在线观看| 中文字幕av在线一区二区三区| 男生和女生一起差差差视频| 最新日韩欧美| 五月天亚洲综合情| 亚洲精品国产九九九| 欧美在线视频免费播放| 77777影视视频在线观看| 日韩欧美国产一区在线观看| 国产精品第5页| 成人免费一区二区三区在线观看 | 久久一二三国产| 黄色手机在线视频| 亚洲第一黄色| 亚洲欧美日产图| 精品自拍偷拍| 91香蕉亚洲精品| 欧美自拍电影| 欧美激情videos| 都市激情一区| 亚洲国产成人久久综合一区| 一级全黄少妇性色生活片| 午夜一区二区三区视频| 亚洲综合图片一区| 91免费看视频| 久久久精品人妻一区二区三区| 日精品一区二区| 性欧美大战久久久久久久| 99久久99热这里只有精品| 久久99精品久久久久子伦| 亚洲免费一区| 国产极品jizzhd欧美| 丁香花在线高清完整版视频| 日韩亚洲第一页| 九九在线视频| 亚洲国产精品热久久| 国产www视频| 欧美日韩中文另类| 久热这里只有精品6| 一区二区三区产品免费精品久久75| 欧美黄色高清视频| 91丨九色丨尤物| 催眠调教后宫乱淫校园| 国产精品一区二区在线播放| 性chinese极品按摩| 久久精品一区| 777精品久无码人妻蜜桃| 欧美久久视频| 51xx午夜影福利| 亚洲欧洲美洲一区二区三区| 亚洲二区三区四区| 岳的好大精品一区二区三区| 国模精品娜娜一二三区| 一区二区三区在线免费看| 成人做爰www免费看视频网站| 777午夜精品电影免费看| 国产精品成人一区二区| 欧美成人免费电影| 欧美在线不卡区| 9i看片成人免费高清| 欧美一级电影在线| 手机在线观看av| 欧美一级大片在线免费观看| 97se综合| 国产精品久久久久久亚洲调教| 欧美一区久久久| 国产精品va在线播放| h1515四虎成人| 国产精品日韩欧美| 欧美黄色网络| 91精品视频在线播放| 精品国模一区二区三区欧美 | 亚洲日本在线看| 二区三区四区视频| 亚洲精品老司机| 日韩精品一区二区三| 日韩欧美视频一区二区三区| 极品国产91在线网站| 欧美在线一区二区三区| 一级做a爱片性色毛片| 69堂亚洲精品首页| 国产黄色免费大片| 亚洲成人av中文字幕| 天堂成人在线| 中文欧美日本在线资源| 免费黄色网页在线观看| 欧美成人性色生活仑片| 草美女在线观看| 青青青国产精品一区二区| 78精品国产综合久久香蕉| 91网站在线免费观看| 97视频一区| 免费av一区二区三区| 成人动漫免费在线观看| 在线观看成人免费| 亚洲二区精品| av网站在线不卡| 国产精品77777竹菊影视小说| 欧美一区二区免费在线观看| 欧美国产视频在线| 在线免费日韩av| 色综合久久88色综合天天免费| 亚洲永久精品视频| 亚洲国产成人久久综合一区| 天堂а√在线资源在线| 久久久久久久久91| 97人人做人人爽香蕉精品| 91精品黄色| 精品成av人一区二区三区| 好吊色视频988gao在线观看| 久久高清国产| 特种兵之深入敌后| 久久久久久99精品| 午夜少妇久久久久久久久| 日韩欧美主播在线| hs视频在线观看| 国产一区二区三区高清在线观看| 色yeye免费人成网站在线观看| 日本亚洲欧洲色| 国产一级成人av| 懂色av一区二区三区四区五区| 国产精品亚洲产品| 又大又长粗又爽又黄少妇视频| 国产无遮挡一区二区三区毛片日本| 欧美精品一区二区成人| 在线观看成人免费视频| 手机在线观看毛片| 久久久国产视频| 香蕉成人影院| 久久99国产精品99久久| 午夜日韩在线| 在线黄色免费看| 国产日韩精品一区二区三区| 日本少妇在线观看| 91精品国产高清一区二区三区 | 成人免费小视频| 亚洲s码欧洲m码国产av| 精品免费99久久| 国产鲁鲁视频在线观看特色| 国产精品吊钟奶在线| 亲子伦视频一区二区三区| 大西瓜av在线| 国产一区二区三区av电影 | 欧美亚洲国产成人精品| 超碰97久久国产精品牛牛| 香蕉视频在线网址| 免费xxxx性欧美18vr| 国产三级av在线播放| 岛国av一区二区三区| 狠狠人妻久久久久久综合麻豆| 久久成人精品一区二区三区| 在线免费成人| 国产高清精品软男同| 精品中文字幕一区二区| 亚洲精品成人av久久| 欧美亚洲高清一区| 国产在线视频你懂得| 国产激情久久久| 欧州一区二区| 国产一级做a爰片久久| 国产欧美日韩在线看| 中文字幕永久在线| 国产亚洲免费的视频看| 激情亚洲影院在线观看| 欧美日韩国产精品一卡| 久久男女视频| 亚洲国产av一区| 在线免费不卡视频| 超碰在线影院| 国产欧美日韩91| 天天精品视频| 国产伦精品一区二区三区妓女下载 | 久久99国产精品99久久| 性xx色xx综合久久久xx| 一色道久久88加勒比一| 欧美亚洲一区二区三区四区| 在线看的av网站| 亚洲在线免费看| 亚洲二区视频| 免费在线观看污| 欧美日韩一区二区三区视频| 老司机在线看片网av| 99在线看视频| 免播放器亚洲| 久久久久久成人网| 欧美一级高清大全免费观看| 波多野结衣在线观看| 欧美日韩国产精品一卡| 精品一区二区久久| 久久精品国产亚洲av无码娇色| 日韩精品亚洲元码| 国产精品黄色片| 天天做天天躁天天躁| 91看片淫黄大片一级在线观看| 波多野结衣绝顶大高潮| www亚洲欧美| 国产一级成人av| 91淫黄看大片| 亚洲日本va在线观看| 日本免费一区视频| 国产精品久久久久久久久久久久久久 | 亚洲精品在线观看www| 另类一区二区三区| 国产日韩亚洲欧美在线| 久久久蜜桃精品| 国产精品特级毛片一区二区三区| 久久久久成人精品| 国产一区二区欧美| 日本人dh亚洲人ⅹxx| 色88888久久久久久影院野外| 先锋成人av| 天堂va久久久噜噜噜久久va| 丁香婷婷综合激情五月色| 少妇一级淫片日本| 欧美激情一区二区三区在线视频观看 | 不卡亚洲精品| 国产免费xxx| 国产日韩成人精品|