HW10 is completed - #10
Conversation
|
Новые результаты benchstat: name old time/op new time/op delta name old alloc/op new alloc/op delta name old allocs/op new allocs/op delta |
agneum
left a comment
There was a problem hiding this comment.
Спасибо за выполненное задание. Хорошая работа
Итого: 10 баллов из 10
| 2. Для экономии памяти используется Scanner | ||
| 3. Не используется каст строки к слайсу байт на входе в функцию анмаршалинга | ||
| */ | ||
| func getUsers(r io.Reader) (result users, err error) { |
There was a problem hiding this comment.
В рамках задания можно не собирать данные пользователей, достаточно только подсчитать количество доменов.
| re, err := regexp.Compile("\\." + domain) | ||
| if err != nil { | ||
| return nil, err | ||
| } |
There was a problem hiding this comment.
Рекомендую заменить регулярное выражение на strings.HasSuffix
|
|
||
| if matched { | ||
| num := result[strings.ToLower(strings.SplitN(user.Email, "@", 2)[1])] | ||
| sep := strings.SplitN(u[i].Email, "@", 3) |
| sep = strings.SplitN(u[i].Email, ".", 3) | ||
| if len(sep) != 2 { | ||
| continue | ||
| } |
There was a problem hiding this comment.
Доменное имя может быть многоуровневым, так же точка может встретиться в имени пользователя. То есть ограничение на длину 2 отсечёт потенциально валидные адреса
Домашнее задание №10 «Оптимизация программы»
Чек-лист студента (Что это?)
go mod tidy..syncфайл. Зачем его удалять?Критерии оценки
Зачёт от 7 баллов
В коде есть комментарии по оптимизациям. Также приложены файлы старой и новой версии с результатами бенчмарков.
Результаты выполнения benchstat:
name old time/op new time/op delta
GetDomainStat-4 629ms ±87% 7ms ± 9% -98.81% (p=0.000 n=10+10)
name old alloc/op new alloc/op delta
GetDomainStat-4 179MB ±71% 0MB ± 7% -99.89% (p=0.000 n=10+10)
name old allocs/op new allocs/op delta
GetDomainStat-4 1.83M ±71% 0.01M ± 8% -99.64% (p=0.000 n=10+10)