LINUX.ORG.RU

История изменений

Исправление Joe_Bishop, (текущая версия) :

А а в чем Ъ Go ? Чего то я пробовал парсить файл построчно стредствами python и Go - дык парс строки на Go был более тормозным чем на Python

правильно, в питоне выделение и сборщик мусора получаются пошустрее и если использовать строки, то так и будет. Правильный подход такой:

// rawReader - io.Reader
reader := bufio.NewReader(rawReader)
scanner := bufio.NewScanner(reader)

for scanner.Next() {
    data := scanner.Bytes()
}

Т.е. scanner.Bytes(), а не scanner.Text() И внутри не использовать всякие bytes.Split() и т.п.: они опять будут выделять память.

Исходная версия Joe_Bishop, :

А а в чем Ъ Go ? Чего то я пробовал парсить файл построчно стредствами python и Go - дык парс строки на Go был более тормозным чем на Python

правильно, в питоне выделение и сборщик мусора получаются пошустрее и если использовать строки, то так и будет. Правильный подход такой:

// rawReader - io.Reader
reader := bufio.NewReader(rawReader)
scanner := bufio.NewScanner(reader)

for scanner.Next() {
    data := scanner.Bytes()
}

Т.е. scanner.Bytes(), а не scanner.Text()
И внутри не использовать всякие bytes.Split() и т.п.: они опять будут выделять память.