go VS NET 字符串操做能力

今天拿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的版本,還有許多須要完善的地方,將來的潛力很大,只是如今這個階段還不太適合進入商業項目的開發,風險比較高。

相關文章
相關標籤/搜索