diff options
author | prettyboy <prettyboy@yandex-team.com> | 2025-01-16 21:01:45 +0300 |
---|---|---|
committer | prettyboy <prettyboy@yandex-team.com> | 2025-01-16 22:26:51 +0300 |
commit | 2f3fd95aac24e27a3b0aa2badda49db82bf36cc5 (patch) | |
tree | 55c8665476c55cd7564ac4f9a0adc2cb078f9c9e /build/plugins/java.py | |
parent | 8f1bc40ec9764df3efecadb5e8a715ada81789d4 (diff) | |
download | ydb-2f3fd95aac24e27a3b0aa2badda49db82bf36cc5.tar.gz |
Prototype - external python files mode for tests
Режим позволяет перезапускать python тесты или интеграционные тесты на питон программы при внесении изменений в python файлы без перекомпиляции.
Сценарий:
- прогнали тесты
- внесли изменение в `library/python/func/__init__.py`
- перезапустили, смотрим на времена
На примере интеграционного devtools/ya/handlers/analyze_make/tests в codenv (base конфигурация).
#|
||
ya m -rA
|
ya m -rA --ext-py
||
||
real 10m25,928s
user 0m53,465s
sys 1m14,791s
```
Total time by type:
[935171 ms] [LD] [count: 3, ave time 311723.67 msec]
[ 13657 ms] [prepare:AC] [count: 4, ave time 3414.25 msec]
[ 10436 ms] [TM] [count: 1, ave time 10436.00 msec]
[ 10387 ms] [prepare:get from local cache] [count: 1521, ave time 6.83 msec]
[ 6480 ms] [TS] [count: 1, ave time 6480.00 msec]
[ 3823 ms] [prepare:put into local cache, clean build dir] [count: 7, ave time 546.14 msec]
[ 2279 ms] [CC] [count: 1, ave time 2279.00 msec]
[ 1251 ms] [PY] [count: 1, ave time 1251.00 msec]
[ 372 ms] [prepare:yt-store] [count: 2, ave time 186.00 msec]
[ 154 ms] [AR] [count: 1, ave time 154.00 msec]
...
```
|
real 0m22,094s
user 0m26,372s
sys 0m3,363s
```
Total time by type:
[13140 ms] [TM] [count: 1, ave time 13140.00 msec]
[ 351 ms] [prepare:yt-store] [count: 1, ave time 351.00 msec]
[ 81 ms] [prepare:tools] [count: 8, ave time 10.12 msec]
[ 32 ms] [prepare:AC] [count: 2, ave time 16.00 msec]
[ 31 ms] [prepare:get from local cache] [count: 7, ave time 4.43 msec]
[ 16 ms] [prepare:clean] [count: 3, ave time 5.33 msec]
```
||
|#
В codenv в base конфигуарции (4cpu) невероятно долго идёт линковка. Тот же самый сценарий, но на mous (54cpu)
#|
||
ya m -rA
|
ya m -rA --ext-py
||
||
real 0m25,435s
user 0m40,242s
sys 0m22,434s
```
Total time by type:
[30958 ms] [prepare:get from local cache] [count: 1521, ave time 20.35 msec]
[16293 ms] [prepare:AC] [count: 4, ave time 4073.25 msec]
[11161 ms] [LD] [count: 3, ave time 3720.33 msec]
[ 4256 ms] [TM] [count: 1, ave time 4256.00 msec]
[ 3529 ms] [TS] [count: 1, ave time 3529.00 msec]
[ 1542 ms] [CC] [count: 1, ave time 1542.00 msec]
[ 635 ms] [PY] [count: 1, ave time 635.00 msec]
...
```
|
real 0m18,321s
user 0m21,673s
sys 0m3,204s
```
Total time by type:
[10786 ms] [TM] [count: 1, ave time 10786.00 msec]
[ 1568 ms] [prepare:yt-store] [count: 1, ave time 1568.00 msec]
[ 151 ms] [prepare:tools] [count: 8, ave time 18.88 msec]
[ 61 ms] [prepare:get from local cache] [count: 7, ave time 8.71 msec]
[ 48 ms] [prepare:AC] [count: 2, ave time 24.00 msec]
[ 14 ms] [prepare:clean] [count: 3, ave time 4.67 msec]
```
||
|#
В новом режиме тест ожидаемо замедляется, так как все питон программы при каждом старте вынуждены читать файлы с фс (ещё через арк), а потом ещё и компилировать байткод, т.е. холодный запуск
commit_hash:24c5a46a8385d3c065abfb6fc5b40f7ad24bb1cb
Diffstat (limited to 'build/plugins/java.py')
0 files changed, 0 insertions, 0 deletions