第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

比 Python 慢?

比 Python 慢?

Go
qq_遁去的一_1 2021-09-10 21:15:06
我有以下 Go 代碼:package mainimport ("fmt"        "os"        "bufio")func main() {    reader := bufio.NewReader(os.Stdin)    scanner := bufio.NewScanner(reader)    for scanner.Scan() {        fmt.Println(scanner.Text())    }}以及以下 Python 代碼:import sysfor ln in sys.stdin:    print ln,兩者都只是從標(biāo)準(zhǔn)輸入讀取行并打印到標(biāo)準(zhǔn)輸出。Python 版本僅使用 Go 版本所需時(shí)間的 1/4(在 1600 萬(wàn)行文本文件上測(cè)試并輸出到 /dev/null)。這是為什么?更新:按照 JimB 和 siritinga 的建議,我將 Go 的輸出更改為緩沖版本?,F(xiàn)在 Go 版本要快得多,但仍然比 Python 版本慢 75%。package mainimport ("os"        "bufio")func main() {    reader := bufio.NewReader(os.Stdin)    scanner := bufio.NewScanner(reader)    writer := bufio.NewWriter(os.Stdout)    for scanner.Scan() {        writer.WriteString(scanner.Text()+"\n")    }}
查看完整描述

1 回答

?
波斯汪

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超4個(gè)贊

正如 JimB 所說(shuō),停止使用字符串。Python 2.x 字符串只是原始字節(jié)。Go 字符串是 UTF-8。這需要編碼、檢查錯(cuò)誤等。另一方面,您還可以從字符串中獲得更多功能。此外,構(gòu)建字符串需要額外的內(nèi)存分配。


如果使用 Python 實(shí)現(xiàn)更改為 unicode 字符串(升級(jí)到 3.x 或 unicode 字符串實(shí)現(xiàn)為 2.x),性能將會(huì)下降。如果你改成和 Go 版本類似的編碼,你會(huì)得到更好的性能:


package main


import ("os"

        "bufio")


func main() {

    reader := bufio.NewReader(os.Stdin)

    scanner := bufio.NewScanner(reader)

    writer := bufio.NewWriter(os.Stdout)

    newline := []byte("\n")


    for scanner.Scan() {

        writer.Write(scanner.Bytes())

        writer.Write(newline)

    }

}

在我的系統(tǒng)上,使用 6500 萬(wàn)行的單詞列表,Python:


real    0m12.724s

user    0m12.581s

sys     0m0.145s

和 Go 版本:


real    0m4.408s

user    0m4.276s

sys     0m0.135s

還應(yīng)該注意的是,就性能比較而言,這不是一個(gè)好例子。它不代表真正的應(yīng)用程序會(huì)做什么,以某種方式處理數(shù)據(jù)。


查看完整回答
反對(duì) 回復(fù) 2021-09-10
  • 1 回答
  • 0 關(guān)注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)