торговые события, расхождения, опоздания — в фиксированном порядке.
торговые события, расхождения, опоздания — в фиксированном порядке.
По построению: параллельный прогон равен последовательному; продление
По построению: параллельный прогон равен последовательному; продление
истории днём N+1 не трогает дни 1…N; правка одного компонента меняет
истории днём N+1 не трогает дни 1…N; правка одного компонента меняет
только его часть снимка — diff читаем.
только его часть снимка — в манифесте меняются хеши только затронутых
дней, дифф двух локальных пересборок читаем.
- **Механизм подпотоков — `numpy.random.SeedSequence`.** Сверено через
- **Механизм подпотоков — `numpy.random.SeedSequence`.** Сверено через
Context7 по документации numpy (2026-08-01): `spawn(n)` порождает детей
Context7 по документации numpy (2026-08-01): `spawn(n)` порождает детей
расширением `spawn_key`, потомок полностью определяется парой
расширением `spawn_key`, потомок полностью определяется парой
@@ -226,10 +234,12 @@
хранят. Манифест несёт паспорт мира, счётчики и хеши по дням; проверки
хранят. Манифест несёт паспорт мира, счётчики и хеши по дням; проверки
«пустой git diff» и «пересгенерируй день N — сравни хеш» живут на нём.
«пустой git diff» и «пересгенерируй день N — сравни хеш» живут на нём.
Каждый `make up` — живая демонстрация детерминизма. Честная потеря —
Каждый `make up` — живая демонстрация детерминизма. Честная потеря —
страховка от платформенного бага; смягчение — CI гоняет генерацию на
страховка на случай платформенного бага: раньше менти с расходящимися
amd64 и arm64.
байтами мог взять готовый снимок из git, теперь он упрётся в красный чек
манифеста; смягчение — CI гоняет генерацию на amd64 и arm64.
- **Живой день — ×60 по умолчанию**: модельные сутки за 24 реальные минуты,
- **Живой день — ×60 по умолчанию**: модельные сутки за 24 реальные минуты,
суточная волна разворачивается на глазах, темп ~35–100 событий/с. Число —
суточная волна разворачивается на глазах; темп в среднем ~35 событий/с,
в пиковые часы сильных дней — до ~100. Число —
значение по умолчанию, переопределяется флагом проигрывателя: ускорение —
значение по умолчанию, переопределяется флагом проигрывателя: ускорение —
свойство транспорта, вне обещания воспроизводимости, константой мира не
свойство транспорта, вне обещания воспроизводимости, константой мира не
делается.
делается.
@@ -249,7 +259,7 @@
| Лаг живого дня | секунды |
| Лаг живого дня | секунды |
**Автоматический порог один: полный день (50 тыс. событий) генерируется
**Автоматический порог один: полный день (50 тыс. событий) генерируется
≤ 30 с.** Расчёт по планке исследования (~2–5×10⁵ событий/с на ядро) — около
≤ 30 с.** Расчёт по планке исследования (~2–5×10⁵ событий/с на ядро) — доли
секунды; порог держит машинный разброс ×2–5 и ловит деградацию на 1–2
секунды; порог держит машинный разброс ×2–5 и ловит деградацию на 1–2
порядка: Faker в горячем цикле, случайная квадратичность. Реализация —
порядка: Faker в горячем цикле, случайная квадратичность. Реализация —
pytest-тест с маркером `perf` и таймаутом-обрубанием: обязателен в CI,
pytest-тест с маркером `perf` и таймаутом-обрубанием: обязателен в CI,
@@ -327,6 +337,10 @@ pytest-тест с маркером `perf` и таймаутом-обрубан
- интерфейс запуска генератора (CLI / цели make) и как он делит режимы
- интерфейс запуска генератора (CLI / цели make) и как он делит режимы
проигрывателя; кто его зовёт в стенде — даги `world_init`/`next_day` из
проигрывателя; кто его зовёт в стенде — даги `world_init`/`next_day` из
оценки мастер-спеки (раздел 9) — и в каком контейнере он живёт;
оценки мастер-спеки (раздел 9) — и в каком контейнере он живёт;
- числа притока посетителей: доля одноразовых кук и темп появления новых
(раздел 1);
- календарная дата-константа D0: каким числом дни оси ложатся в
`EventDate`/`UTCEventTime`;
- формат описания мира и конфигурации (что константа кода, что параметр);
- формат описания мира и конфигурации (что константа кода, что параметр);
- как фиксируется «зерновой» мир конца этапа 2 (раздел 9 мастер-спеки):
- как фиксируется «зерновой» мир конца этапа 2 (раздел 9 мастер-спеки):
с манифестным решением напрашивается мини-манифест зернового мира — форму
с манифестным решением напрашивается мини-манифест зернового мира — форму
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.