| Commit message (Collapse) | Author | Age | Files | Lines |
|\ |
|
| |
| |
| |
| | |
commit_hash:8157c8f8fcde5bb0d8a201ff393dbedb050c1f4b
|
| |
| |
| |
| |
| | |
[nodiff:caesar]
commit_hash:62fa96ca05b1a4018e2e51e6b589483cd3a44fc4
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Добавляется поддержка стандартной работы с байткодом для бинарей собранных с --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:deadebefdfd81b6c737b9464435356b8f652e296
|
| |
| |
| |
| | |
commit_hash:afeeeea3c2cbdec0ddeed0fea5f88df9d8575f8b
|
| |
| |
| |
| | |
commit_hash:2a9f4a61b44a7e34d430d8615b5c9d2d120fa7d9
|
|\| |
|
| |
| |
| |
| | |
commit_hash:5dda6f5ef324f03c99af3dae32ebf4a059f02bd3
|
|\| |
|
| |
| |
| |
| | |
commit_hash:0f08d8919403fe3e6d0d7312bc193c022597f33c
|
| |
| |
| |
| | |
commit_hash:747602d8e470d51bcf6f38dfddafa12047d210df
|
|\| |
|
| |
| |
| |
| | |
commit_hash:fc31d2770ebeffeb513c4535bd146c731b7f78fb
|
|\| |
|
| |
| |
| |
| | |
commit_hash:f51f172878d227b49cb480296f61a6575e5d6e67
|
|\| |
|
| |
| |
| |
| | |
commit_hash:4a54955f428c6242f791a5c6cb7de619348e985c
|
| |
| |
| |
| |
| | |
add literal compilation
commit_hash:29f6f2d5c4ec11ceb61add67bc4e697194a4efff
|
| |
| |
| |
| | |
commit_hash:901dbbb6495524f1473b91e0121e208086bd5b08
|
|\| |
|
| |
| |
| |
| | |
commit_hash:19b37bd3d7e3b4d80e4844676c881bbef1fec76b
|
| |
| |
| |
| | |
commit_hash:c97917e5fe0a2f094b8f7a50cf183357e8d07096
|
|\| |
|
| |
| |
| |
| | |
commit_hash:572c24e53109592f361b35e728523fe44b5b858e
|
| |
| |
| |
| | |
commit_hash:509ce4be1e807a8956ba6b097801566b93400463
|
| |
| |
| |
| | |
commit_hash:7fce5e6adcc97528aec0d9b3071c4aece6648a2c
|
| |
| |
| |
| | |
commit_hash:a6348b372e2440db12be7fa99ff5a89ec0907d5f
|
|\| |
|
| |
| |
| |
| | |
commit_hash:ac0b5dcbcf99d08823bfca0f550ce4a4d1a8ba01
|
|\| |
|
| |
| |
| |
| | |
commit_hash:a80065301df8a3de8b4d2ad596dfd995d3988485
|
| |
| |
| |
| |
| |
| |
| | |
std::string everywhere
done
commit_hash:8a83afa39917ba66a5161388a7cd74a4488d9908
|
| |
| |
| |
| | |
commit_hash:9c38bbe53e87d788bf4d4e1155e2c080773bacc0
|
|\| |
|
| |
| |
| |
| | |
commit_hash:c87fb9e7c5cb8a896dd4b758ad73c5c540339df7
|
| |
| |
| |
| | |
commit_hash:19481c9fbb008aab4f4d676f1a3a242f6e90e90e
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
becoming CPO, move TErrorCode and TError to library/cpp/yt/error
\[nodiff:caesar\]
List of changes:
1) Make `ConvertTo` a normal function again (basically, a revert of previous change). It turned out to be very inconvenient entry point
2) Introduce concept for "Primitive types" which are handled without yt/core module. Please note that inclusion of core **does not** affect work with primitive types (otherwise we would be facing and ODR violation). These are numerics, duration, instant, string-like objects and guid
3) Introduce `FromErrorAttributeValue` which is a substitute to `ConvertTo` with special behavior (see below)
4) Scheme for (de-)serialization has changed:
1) Primitive types are handled via `ConvertToTextYsonString` and `ConvertFromTextYsonString`
2) Other types are not supported without yt/core. Otherwise `ConvertToYsonString(value, EYsonFormat::Text)` used for serialization and `ConvertTo<T>(value)` for deserialization.
5) New format of attribute value storage allows to not care about concrete type of the attribute (text yson strings can be detected since they start with `\"` and deserialized so are text yson bools, everything else is already human readable). This drops dependency on `TTokenizer`
6) Some small parts (e.g. enums or constants or aliases) of yt/core/misc files were moved to library/cpp/yt/\* locations and re-included to drop dependencies of stripped\_error on them
7) `TErrorAttributes` is now a simple hash map instead of a handle to `IAttributeDictionary`
8) `ExtractFromAttributes` weak symbol is finally moved to library/cpp/yt/error due to point 9 allowing to fully drop dependency on `IAttributeDictionary`. Combined with point 7 this drops dep on yt/core/ytree altogether
9) Moved `TErrorCode` to library/cpp/yt/error. There is a logger there which forces dep on library/cpp/yt/logging. It is not required really, and can be later removed
10) Moved `TError` with format and macroes to library/cpp/yt/error. It still (and probably forever will) depend on yson.
What can be done next: Switch TYsonString to TString and move ConvertTo/FromTextYsonString to library/cpp/yt/error. This would remove dep on library/cpp/yt/yson\_string
commit_hash:6f11dc478ab782a1f98a5aedcd45a4800d3f4e7b
|
|\| |
|
| |
| |
| |
| | |
commit_hash:a31e79330e3ec72361743d932a47fc67f92fb7a0
|
|\| |
|
| |
| |
| |
| | |
commit_hash:41c16027e2f796197b98307419a63da9fa3f1a88
|
| |
| |
| |
| | |
commit_hash:f0e4b9bf3cc217402238bf1efcc4b8695f6a3709
|
| |
| |
| |
| | |
commit_hash:e95937c5f2c37075ed358ebb01e274fc9ddfcbb6
|
| |
| |
| |
| | |
commit_hash:b3038041fc2814c9002bbb5e5d9e96520a3fb60a
|
| |
| |
| |
| | |
commit_hash:534ea2df7961feea6932d1e243df20d825c7fe69
|
| |
| |
| |
| |
| |
| | |
library/cpp/yt/yson_string to be later used for error attribute serialization
commit_hash:f7632c9622c71e023148c9454a9889e9cac75ecd
|