今天拿golang 與 NET4.0 作了在字符串方面的性能比較,看看誰牛!golang
1、讀取txt文本文件性能
GO的代碼:spa
readbuf, _ := ioutil.ReadFile(userFile) strcontent := string(readbuf)
NET的代碼:code
string file = @"D:\txt\1.txt"; string strcontent = File.ReadAllText(file);
他們讀的都D:\txt\1.txt 文件,大小是445M(若是文件太大,超過了500M,GO進行讀取的時候會出現內存溢出的異常)blog
GO的讀取速度是在1秒左右,NET的讀取速度是在2秒左右內存
2、字符串分割開發
主要對上面讀取出來的字符串作Split分割的操做字符串
go的代碼:arry:=strings.Split(strcontent,"0")字符串處理
NET的代碼: var arry = strcontent.Split(new char[]{'0'});string
go在分割上花了4秒左右,而NET則是1秒左右
3、字符串查找
主要是對字符串作Index和LastIndex操做
go的代碼:strings.LastIndex(strcontent,"重慶")
net的代碼:int index = strcontent.LastIndexOf("重慶");
go在Index和LastIndex操做都是1秒內完成的,而net的Index是在1秒內完成,LastIndexOf則在2秒左右。
4、字符串替換
主要是對字符串作Replace操做
go的代碼:strings.Replace(strcontent,"重慶","廣州",-1)
net的代碼: strcontent.Replace("重慶", "廣州");
go運行的時候報異常:內存溢出,NET則是在1秒左右
從上面得出go的處理字符串上還不是很成熟,對於大的字符串操做容易出異常,性能上的優點也不是很明顯,在字符串分割上性能比較差。
net的字符串處理比較穩定,性能上也都還能夠,全部的每一個不一樣的操做所花的時間都相差不大,不會出現像go那樣有些操做性能好,有些操做性能差。
go畢竟仍是1.1的版本,還有許多須要完善的地方,將來的潛力很大,只是如今這個階段還不太適合進入商業項目的開發,風險比較高。