Skip to content

Commit 9496bb6

Browse files
committed
Commit Readme
0 parents  commit 9496bb6

File tree

1 file changed

+40
-0
lines changed

1 file changed

+40
-0
lines changed

Readme.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Задание №7. Оптимизация `test-suite` и сбор `DX`-метрик
2+
3+
В этом задании вам нужо попрактиковаться в оптимизации `test-suite` и сборе `DX`-метрик.
4+
5+
## Оптимизация test-suite
6+
Можно оптимизировать test-suite `dev.to`, либо своего проекта.
7+
8+
В любом случае для сдачи задания нужно написать `case-study` о сделанной оптимизации.
9+
10+
Вооружитесь инструментами, рассмотренными на лекции, и разгоните этот test-suite!
11+
12+
## Сбор DX-метрики
13+
14+
Чтобы запечатлеть свой прогресс и в дальнейшем защитить его от деградации, сделайте сбор `DX`-метрики времени выполнения `test-suite` в `InfluxDB` и постройте график в `Chronograf`.
15+
16+
Сделать это очень просто с помощью https://github.com/influxdata/TICK-docker и https://github.com/palkan/influxer.
17+
18+
Подумайте, как бы вам было удобно прикрепить отправку метрики в `InfluxDB` к прогону тестов.
19+
20+
## Hints
21+
22+
Старайтесь держать `feedback-loop` коротким. `test-suite` `dev.to` целиком в один процесс выполняется около 10 минут, это очень долго.
23+
24+
Используйте семплирование или работайте с конкретными наиболее долгими тестами.
25+
26+
Если вы обнаружите проблему, то выберите какой-нибудь один тест, на котором она воспроизводится, и исправьте её, работая с этим тестом.
27+
28+
Попробуйте все инструменты из `test-prof`!
29+
30+
`json-flamegraph` для всего `test-suite` целиком занимает около `1Gb`. `Speedscope.app` открыть его не может.
31+
32+
C отчётом `stackprof` для всего `test-suite` можно работать через `CLI stackprof`, и через `qcachegrind`.
33+
34+
С `ruby-prof` надо работать ещё аккуратнее, потому что он, как `tracing profiler`, собирает очень много данных, с которыми в дальнейшем тяжело работать.
35+
36+
37+
## Чек-лист для сдачи задания
38+
- [x] PR в этот репозиторий с `case-study` о проделанной оптимизации и достигнутых результатах в описании
39+
- [x] Если оптимизируете `dev.to`, то сделать `PR` с оптимизацией в https://github.com/hardcode-dev/rails-optimization-2-task4 и добавить в этот PR ссылку на него
40+
- [x] Добавить скриншот с графиком изменения времени прогона `test-suite` в `Chronograf` по мере оптимизации

0 commit comments

Comments
 (0)