| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Cython is not yet subinterpreter compatible. There are no ETA when cython is going to support subinterpreters.
This PR removes cython from hermetic python imoprt hooks in order to make them subinterpretr-compatible.
commit_hash:427b6f9db6afa6695659ee147621e1ccb391d3cb
|
|
|
|
| |
commit_hash:1d9f5675b9d3ddaa44db4472376a06ad3e811e2d
|
|
|
|
|
|
|
| |
Cython is not yet subinterpreter compatible. There are no ETA when cython is going to support subinterpreters.
This PR removes cython from hermetic python imoprt hooks in order to make them subinterpretr-compatible.
commit_hash:1b067c37f55a4f1d9a6172df7009c75231cc1e25
|
|
|
|
|
|
|
|
|
|
| |
root.path files
Для того чтобы работал сценарий
```
echo `arc root` > /tmp/.root.path
```
commit_hash:255b16f66c1a610cea5322a3842edc492634faaf
|
|
|
|
|
|
|
|
|
| |
[Вот так](HIDDEN_URL делает нативный питон
[Репродьюсер](HIDDEN_URL
Как оно выглядит [ДО](HIDDEN_URL и [ПОСЛЕ](HIDDEN_URL, а вот так [нативный](HIDDEN_URL
commit_hash:cdce69c28e699d42f25e43f5d6efb214c8227024
|
|
|
|
| |
commit_hash:ee709cc1095985919972e31b34d0127eb322959f
|
|
|
|
| |
commit_hash:3433c11c4d386c785422b1e149e9a3a8de7f4f0f
|
|
|
|
|
|
|
|
|
| |
В репозитории больше не будет `__pycache__` при запусках через ya make / test
На примере devtools/ya/handlers/analyze_make/tests
Время конфигурации в горячем сценарии в режиме --ext-py при изменении одного питонфайлика: `Configure time - 6.1 s`
Время конфигурации в горячем сценарии в режиме --ext-py при изменении одного питонфайлика с текущими правками: `Configure time - 4.6 s`
commit_hash:adf5219cd4f347bb572393d4a6debd1436dc0815
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Добавляется поддержка стандартной работы с байткодом для бинарей собранных с --ext-py (HIDDEN_URL
На примере импорт теста для `devtools/ya/bin`
`time Y_PYTHON_ENTRY_POINT=library.python.testing.import_test.import_test:main YA_TEST_CONTEXT_FILE=/tmp/test.context ./ya-bin >/dev/null`
#|
||
Без патча ya m -r
|
real 0m2,934s
user 0m2,772s
sys 0m0,157s
||
||
Без патча
ya m -r --ext-py
|
real 0m10,916s
user 0m9,927s
sys 0m0,368s
||
||
C патчем
ya m -r
|
real 0m2,931s
user 0m2,774s
sys 0m0,156s
||
||
C патчем
ya m -r --ext-py
первый запуск с записью байткода
|
real 0m7,482s
user 0m5,174s
sys 0m0,620s
||
||
C патчем
ya m -r --ext-py
последующие запуски с использованием байткода с фс
|
real 0m3,550s
user 0m2,801s
sys 0m0,262s
||
|#
commit_hash:84f7bb273b09d51b88eb5c5b6dfcd3bb7c108307
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Режим позволяет перезапускать 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
|
|
|
|
| |
commit_hash:2a9f4a61b44a7e34d430d8615b5c9d2d120fa7d9
|
|
|
|
|
|
|
| |
There is no runtime perf impact, but
- The change reduces build graph by removing 2 nodes out of 5 for python which accelerates both configuration and build
- surprisingly in all experiments there were positive impact on binary size about 2MiB
commit_hash:909fdeeb91b7f20c749177d638e97d5a469e422d
|
|
|
|
| |
0003a9ac951e380a13106a8f180014e0aed57f3a
|
|
|
|
| |
5d391b8f31717f85fcd88c4ae5ce3b57a723e42e
|
|
|
|
| |
996025a2ee725b626c3b77aac016d8f8c0ac4e76
|
|
|
|
| |
58bed0cef82a2a691f8f949d16c3d3b03d94f627
|
|
|
|
|
|
|
| |
* Move src/ subdir contents to the top of the layout
* Rename self-written lib -> lib2 to avoid CaseFolding warning from the VCS
* Regenerate contrib/libs/python proxy-headers accordingly
4ccc62ac1511abcf0fed14ccade38e984e088f1e
|
| |
|
| |
|
|
|
|
|
| |
* Library import 5, delete go dependencies
* Fix yt client
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
* typo-fix
* add before and after import callbacks
|
| |
|
| |
|
|
|
|
| |
ref:e84342d4d30476f9148137f37fd0c6405fd36f55
|
|
|
|
| |
ref:b200b70556036c6a735ab81b1414c4b334ba5958
|
|
|
|
| |
ref:919db9913468e91d031bbd511beeacdcfdd74489
|
|
|
|
|
|
|
|
|
|
| |
The arcadia main function (library/python/runtime_py3/main/main.c::pymain) calls Py_InitializeFromConfig() before going to the vanilla python Py_Main().
Py_InitializeFromConfig() overrides sys.prefix and sys.exec_prefix by default values ('/var/empty') and then import __res module (and importer.pxi as a part of it).
importer.pxi::_init_venv() set a proper value to sys.prefix and sys.exec_prefix attributes.
Py_Main() in turn also calls Py_InitializeFromConfig() and reset the sys attributes to their default values again.
I don't know why it was not a problem in python 3.9 but in 3.10 it is.
ref:0466de641f92d66c4f992ae12c02d8d58db397f6
|
|
|
|
| |
ref:ca7a95e8c9a9d780f96497136a152091d54e61b5
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
2 of 2.
|
|
|
|
| |
1 of 2.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
<nslus@yandex-team.com>. Commit 2 of 2.
|
|
|
|
| |
<nslus@yandex-team.com>. Commit 1 of 2.
|