+-10гигов, необходимо максимально эффективно по памяти и быстро найти сколько раз повторяется определенное слово, набросал такой код https://play.golang.org/p/fXAEiqHlgOj
Проблема в том, что, когда я построчно считываю в отдельной рутине файл и отправляю слайс байт по каналу дальше, у меня иногда обрезается начало строки, а иногда конец (по 1 символу). Причем, чем меньше весит файл, тем реже такой эффект проявляется. Если же я читаю в мейне и не отправляя по каналу считаю количество дубликатов, то строки не обрезаются и все корректно работает.
Есть у кого какие идеи что это может быть?
https://golang.org/pkg/bufio/#Reader.ReadLine ReadLine is a low-level line-reading primitive. Most callers should use ReadBytes('\n') or ReadString('\n') instead or use a Scanner. используйте https://golang.org/pkg/bufio/#Scanner scanner.Text()
Пробовал, тоже самое.
проблема плавает или на определенном файле постоянная?
Плавает. Обычные txt, созданные через блокнот на маке.
go func(wg *sync.WaitGroup) { тут это не нужно
Почему не нужно? Иначе читающая сторона зависнет с ожиданием новых значений.
я про передачу WG как аргумента
Обсуждают сегодня