shad-go/allocs/README.md

32 lines
1.7 KiB
Markdown
Raw Normal View History

2020-08-26 19:34:08 +00:00
# allocs
`Counter` используется для нахождения уникальных слов и подсчета вхождений каждого из них.
Его интерфейс выглядит так:
2022-03-05 23:45:34 +00:00
* `Count(r io.Reader) error` — функция, которая подсчитывает количество вхождений каждого слова в тексте.
2020-08-26 19:34:08 +00:00
На вход подается io.Reader, в котором находится некоторый текст.
Разделителями являются только переносы строк и пробелы.
2021-03-30 22:29:33 +00:00
* `String() string` — преобразует мапу вида `{"слово": "количество вхождений"}` в форматированную строку.
2020-08-26 19:34:08 +00:00
Необходимо написать имплементацию `EnhancedCounter` (см. файл `allocs.go`)
и снизить количество аллокаций. Бейзлайн можно найти в `baseline.go`.
Значения бенчмарков для бейзлайна:
```
goos: linux
goarch: amd64
pkg: gitlab.com/slon/shad-go/allocs
Benchmark/count-4 73200 16294 ns/op 880 B/op 5 allocs/op
Benchmark/main-4 40485 30113 ns/op 1034 B/op 9 allocs/op
```
Значения бенчмарков для авторского решения:
```goos: linux
goarch: amd64
pkg: gitlab.com/slon/shad-go/allocs
Benchmark/count-4 212850 5471 ns/op 4144 B/op 2 allocs/op
Benchmark/main-4 143937 8247 ns/op 4176 B/op 3 allocs/op
```
2021-03-30 22:29:33 +00:00