Repository navigation
v0.17.2
Скачать EXE / Download EXE · SHA-256
Русский
- Быстрее первое открытие: метаданные и индекс строятся за один полный проход.
- Быстрее повторная обработка: готовые каналы и состояния фильтра переиспользуются без лишних полных копий.
- Плавнее навигация: крупный фильтрованный график готовится в фоне; готовый вид остаётся доступным.
- Исправлены инструменты: Shift-выделение, таймлайн воспроизведения, курсор точек и сочетания меню.
- Надёжнее работа с данными: исправлены точные временные границы, согласованы версии GUI/CLI и подготовлена инфраструктура подписи.
Включены все изменения после v0.17.0-rc.3, в том числе локальная v0.17.1. Методики FFT/H1 и полные данные анализа сохранены.
EXE без цифровой подписи. Удержание обработанных каналов увеличивает расход RAM; при Manual 64 MiB зафиксированы отдельные замедления. Подробности и условия замеров — ниже.
English
- Faster cold opening: metadata discovery and indexing share one complete pass.
- Faster repeated processing: prepared columns and filter states are reused without redundant full copies.
- Smoother navigation: large filtered views prepare in the background while a ready view remains available.
- Interaction fixes: Shift selection, playback timeline, point cursor and menu shortcuts.
- More reliable data handling: exact time bounds, matching GUI/CLI versions and signing infrastructure.
Includes every change since v0.17.0-rc.3, including local v0.17.1. FFT/H1 methods and complete analysis input are preserved.
Executables are unsigned. Retained processed columns increase RAM use; some Manual 64 MiB disk cases are slower. Details and measurement conditions are below.
Полный журнал, проверки и ограничения / Full changelog, validation and limitations
Русский
Выпуск Windows x64 объединяет все изменения после последнего опубликованного
v0.17.0-rc.3, включая локальный тег v0.17.1 и последующие исправления открытия,
фильтра и навигации. Тег v0.17.1 не перемещается. Методика FFT, H1/Welch и
coherence, исходные отсчёты, длины N/L и область анализа сохраняются.
Открытие и подготовка графика
- При первом открытии metadata discovery и checkpoint ScanIndex выполняются
одним полным проходом parser вместо двух. При готовом индексе сохраняется
discovery всей записи: поздние каналы и точное число отсчётов не теряются.
Ошибка, отмена или изменение файла не публикуют незавершённый индекс. - Сохраняются точные временные границы, секции/X0, сбросы времени, комментарии,
названия каналов и checkpoint. Раздельно учитываются чтение metadata,
подготовка данных и поиск/сохранение индекса; это не ускорение самого FFT. - Полный проверенный шаг временной оси отделён от GUI-шага фильтра. Обзор может
повторно использовать готовый Cadence без лишней сортировки/прохода. При
отсутствии гарантии остаётся прежнее точное определение шага. - RAM-источник строит допущенное дерево min/max непосредственно по исходной
временной оси. Хранятся узлы и якоря склейки, без полной копии времени или
обязательной записи этого обзора на диск. Квота дерева — min(128 MiB, budget/8).
Нехватка допуска или неподдерживаемый источник сохраняют дисковый AMSOIDX2. - Ускорены сбор экстремумов по непрерывным колонкам, чтение RAM-блоков до
65536 строк и поиск разрывов по принадлежащей источнику точной RAM-оси.
Первый равный экстремум, порядок, signed zero, finite_count и края сохранены.
Фильтр, память и численные данные
- Крупный фильтрованный Signal готовится в OverviewWorker; paint/zoom не
запускают повторную полную фильтрацию. Показаны уведомление и ход подготовки;
до уточнения остаётся предыдущая совместимая готовая проекция. - Исходные массивы передаются immutable RecordingSource без полной копии.
Две seed-строки Dataset служат совместимости, FFT/FRF используют полный вход.
Наличие исходного файла отделено от нахождения оригиналов в RAM. - Допущенные обработанные каналы удерживаются в min(512 MiB, budget/4), без
второй временной оси. Фильтр работает непосредственно в конечных массивах
через process_in_place, сохраняя арифметику, коэффициенты и причинные состояния. - Независимые каналы используют общий analysis_executor вместе с FFT/FRF.
Занятый executor, небольшая работа и дисковый источник сохраняют
последовательный путь; дополнительного конкурирующего пула нет. - RAII учитывает переданные оригиналы и новые кэши один раз. Активные snapshot
удерживают данные и допуск после trim/удаления descriptor. preparing/epoch
исключают публикацию частичного результата и возвращение вытесненного кэша.
Перед демоцией оригиналов освобождается idle обработанный кэш. - FSTATE01 сохраняет точные biquad/prev_time/have_segment между процессами:
до 512 продолжений и 2 MiB на рецепт, общий дисковый LRU 2 GiB/256 элементов.
Проверяются файл, диапазон, физические каналы, формулы, фильтр, Fs, checksum
и длины. Повреждение необязательного кэша вызывает точный прогрев префикса;
отмена и изменение файла остаются ошибками. Оформление не меняет численный вход. - Гарантии неизменности времени для processed-источника задаются явно.
Разрывы, NaN/Inf, порядок накопления и спектр средней опоры не заменяются
визуальной огибающей; готовые H1/coherence блоков не усредняются. - Исправлено открытие test1 с первым временем -6.9388939039072284e-18:
численные границы больше не округляются к нулю. Устранён отказ полного
фильтрованного обзора; старые ScanIndex автоматически перестраиваются.
Интерфейс и управление
- В окне Spectrum исправлен обрезанный текст вычисления/ошибки: восстановлено
выравнивание GDI после осей. Обзорные линии рисуются пакетами. - Постановка точек/маркеров/линий использует компактный прицел 17×17 с чёрной
сердцевиной, белой обводкой и центральным hotspot; handle освобождается. - Shift-выделение участка работает в режиме точек и при блокировке разметки.
Явно вооружённые инструменты сохраняют прежний приоритет. - Таймлайн воспроизведения можно выбирать, перетаскивать, удалять/скрывать
через Escape, ПКМ или меню. Исправлены повтор после EOF, пауза/продолжение,
отмена и потеря capture. Транспорт не меняет численную область FFT/FRF. - «Склеивать участки записи» перенесено из общих настроек в «Каналы» каждого
документа. Проекты сохраняют локальное значение, старый глобальный INI-ключ
удаляется при сохранении. Склейка не меняет исходные времена и numerical_revision. - Исправлена обрезанная команда Ctrl+Shift+S: сочетания измеряются текущим
шрифтом. «Анализ → Участок анализа» использует общие тематические поля/кнопки,
измеренные подписи и двухстрочную компоновку.
Очистка, документация и подпись
- Удалены невызываемые SpectrumWorker submit_source/Prepare, всегда истинная
проверка overview, недостижимое предупреждение склейки, неиспользуемые
export/text helpers и поля переводов. Действующие CLI/callback/reader API сохранены. - Обновлены карта архитектуры, правила разработки, CHANGELOG и README.
Внешние устаревшие отчёты архивированы; сравнения сведены в один итоговый
документ с сохранением принадлежности каждого замера конкретному снимку.
Частные стенды и реальные записи не входят в Git или пакет. - GUI/CLI имеют согласованные VERSIONINFO. Подготовлены бесплатный workflow
SignPath, проверка сертификата/timestamp и упаковка после подписи; заявка
Foundation отправлена с разрешения владельца. Одобрение ещё ожидается.
EXE этого выпуска не подписаны. Предупреждение Windows/Edge возможно.
Старые releases и теги не заменяются; будущая подписанная поставка требует
отдельного одобрения и проверки сервиса.
Измерения и проверки
База таблицы — чистая v0.17.1, после — исходники нынешнего выпуска до добавления
версии. Ryzen 5 5600X, 32 GiB, Windows, GCC 14.2, профиль Power Saver;
реальный test2: 1 024 104 009 байт, N=6 832 000, восемь каналов.
Три пары процессов, медианы; загрузка не включена в FFT/FRF.
| Действие | v0.17.1 | Новые исходники |
|---|---|---|
| Первое открытие, новый частный кэш | 44,5460 с | 33,4981 с |
| Полный raw FFT одного канала | 2,8023 с | 2,8355 с |
| Первый raw H1, семь откликов, L=2048 | 1,7976 с | 1,7980 с |
| Готовность фильтра после предыдущего анализа | 4,0620 с | 0,3475 с |
| Первый processed FFT | 4,0623 с | 3,3617 с |
| Повтор processed FFT | 4,3191 с | 3,4220 с |
| Первый processed H1 | 3,7067 с | 2,2176 с |
| Peak WS всей цепочки FFT/FRF/фильтра | 2116,80 MiB | 2545,93 MiB |
- 46 численных сценариев, три пары, 1656 вызовов: N=4096/4093/337132,
один/семь каналов или откликов, mean on/off, Auto, L=2048/2050, Direct.
Fingerprints полных потоков результатов/масок/основных метаданных совпали.
Это контроль потоков, не отдельное измерение максимальной погрешности. - Для всех 54 656 000 фильтрованных значений real test2 проверено точное
совпадение с frozen-контролем (конечные/Inf побитово, NaN по статусу).
Проверены test1, все 16 сочетаний семейства/режима фильтра, разные границы
блоков, разрывы/NaN/Inf/переполнение, отмена, trim, владение и занятый executor. - Семь пар Zoom+PNG на 58,19 MB не показали ухудшения; конечные пиксели совпали.
Начальные +14% в двух численных случаях и короткие GUI-задержки не
воспроизвелись в дополнительных контролях. Универсальное ускорение не заявляется. - Последние регрессии: 1357 проверок ядра и 1036 GUI без ошибок; штатные
CLI/GUI-сборки выполняются из чистого нового тега перед упаковкой.
Исходники тестов входят в репозиторий. Инфраструктура подписи ранее прошла
25 проверок; положительная проверка реальной подписи ожидает доступа к сервису.
Известные ограничения
- Удержание обработанных каналов ускоряет повторную работу ценой RAM: в полной
цепочке Peak WS вырос примерно на 429 MiB. Бюджет «Данные + расчёты» не
является пределом памяти всего процесса. Малый бюджет выбирает блоки/диск. - Подтверждённые disk-регрессии остаются: Manual 64 MiB, synthetic 58,19 MB,
две пары в обратном порядке: возврат к raw FFT 2,208 → 2,487 с (+12,6%),
первый raw H1 1,735 → 1,846 с (+6,4%). Численные результаты совпадают,
Peak WS около 29 MiB; причина замедления пока не локализована. - В отдельном сравнении с предшествующим рабочим снимком RAM-подготовка
первого графика после перезапуска с готовым обзором стала 0,0597 → 0,3200 с;
последующая навигация быстрее. Это иной снимок/условие, не строка таблицы выше. - Дисковая фильтрация может требовать точного прогрева префикса при отсутствии
продолжений; disk FFT требует scratch и времени. Большой Direct/Auto L
способен вернуть ResourceLimit; N/L не уменьшаются молча. CLI загружает
исходный файл в RAM. Существующие дисковые квоты индекса/кэша сохраняются. - Новые испытания относятся максимум к реальной записи 1,024 GB. Исторический
synthetic 10 GB проверялся в rc.3; текущие изменения заново на 10 GB и
физическом ПК 8 GiB не проверены. Нового сопоставления FAMOS нет. Текущая
область работ — до 10 GB; новые испытания 20 GB исключены.
Поставка: Windows x64 GUI EXE и SHA256SUMS.txt. Документация, политика
подписи, GNU GPLv3 LICENSE и исходный код доступны в репозитории.
English
This Windows x64 release includes every change since the last published
v0.17.0-rc.3, including local tag v0.17.1 and subsequent opening/filter/navigation
work. Existing tags remain unchanged. FFT, H1/Welch and coherence methodology,
original samples, N/L and the independent analysis interval are preserved.
Opening and graph preparation
- Cold metadata discovery and ScanIndex checkpoints share one complete parser
pass instead of two. Cached-index opening still discovers the entire source,
retaining late channels and exact sample counts. Cancellation, failures and
changed files never publish an incomplete index. - Exact endpoints, sections/X0, time resets, labels, comments and checkpoints
remain intact. Metadata, preparation and index lookup/persistence are timed
separately; preparation savings are not reported as FFT-kernel speedups. - Verified complete-timeline cadence is distinct from GUI filter cadence and
can be reused without redundant inspection/sorting, with the exact fallback. - Admitted resident sources build a RAM min/max hierarchy and stitching anchors
against the original timeline, without another full time array or mandatory
disk output. Its cap is min(128 MiB, budget/8); unsupported sources or denied
admission retain the AMSOIDX2 disk path. - Contiguous-column extrema aggregation, RAM blocks up to 65536 rows and exact
resident gap lookup reduce overhead while preserving tie order, signed zero,
finite counts, chronology and inclusive endpoints.
Filtering, ownership and numerical input
- Large filtered Signal views use OverviewWorker instead of refiltering whole
channels during paint/zoom. Preparation/progress are visible; a compatible
previous projection remains until refinement completes. - Original arrays move into immutable RecordingSource without full copies.
Dataset seed rows are compatibility data; FFT/FRF use the complete source.
File availability and resident storage are separate properties. - Exact processed columns may be retained within min(512 MiB, budget/4), sharing
the time axis. process_in_place writes final admitted arrays with unchanged
arithmetic, coefficients, causal states and reset behavior. - Independent channels share analysis_executor with FFT/FRF. Small work, a busy
executor and disk input use the sequential path; no competing pool was added. - RAII accounts for originals/caches once. Snapshots retain storage/admission
after trim or descriptor destruction; preparing/epoch prevent partial/stale
publication. Idle processed caches are released before original-data demotion. - FSTATE01 persists exact biquad/prev_time/have_segment across processes, up to
512 checkpoints/2 MiB per recipe within the shared 2 GiB/256-item disk LRU.
File, interval, physical channels, formulas, filter, Fs, checksum and lengths
are checked. Optional cache failure causes exact prefix replay; cancellation
and source changes remain errors. Cosmetic changes do not invalidate input. - Processed timeline preservation is explicit. Gaps, NaN/Inf, Welch accumulation
and averaged-reference spectra remain exact; envelopes never replace original
numerical input, and completed block H1/coherence are not averaged. - Fixed test1 opening with first time -6.9388939039072284e-18: endpoints are no
longer rounded to zero. Full filtered overview succeeds; old ScanIndex cache
entries rebuild automatically.
Interaction and rendering
- Spectrum calculation/error notices restore GDI alignment after drawing axes,
fixing clipped text. Overview lines use batched GDI drawing. - Point/marker/line placement uses a compact 17×17 black/white crosshair with
a precise central hotspot and owned cursor cleanup. - Shift range selection works in point mode and with annotation locks;
explicitly armed tools keep their previous priority. - Playback timelines support selection, dragging, deletion/hiding with Escape,
right-click or the menu. EOF restart, pause/resume and cancellation/capture
loss are fixed; playback does not change FFT/FRF input intervals. - Gap stitching moved from global settings to each document's Channels panel.
Projects retain the local setting; the old global INI key is removed on save.
Original timestamps and numerical revision remain unchanged. - Ctrl+Shift+S and other shortcuts are measured using the actual font, avoiding
clipping. Analysis interval fields/buttons use the shared theme and measured
two-row layout.
Cleanup, documentation and signing
- Removed unused SpectrumWorker submit_source/Prepare, an always-true overview
test, unreachable stitching warning, export/text helpers and translation fields.
Active CLI, callbacks, readers and resource ownership APIs are preserved. - Updated architecture, contributor rules, changelog and READMEs. Old external
reports were archived; comparisons share one final document with snapshot
provenance. Private harnesses and original recordings are not distributed. - GUI/CLI have matching VERSIONINFO. Free SignPath workflow, certificate/timestamp
verification and post-signing packaging are prepared. The owner-authorized
Foundation application is pending. This release's EXE are unsigned and
Windows/Edge warnings may remain. Existing releases are not replaced; future
signing requires separate service approval and verification.
Measurements and validation
The baseline below is clean v0.17.1 versus this release's source before adding
its version label. Ryzen 5 5600X, 32 GiB, Windows, GCC 14.2, Power Saver;
real test2: 1,024,104,009 bytes, N=6,832,000, eight channels. Three process pairs,
medians; opening is not included in FFT/FRF times.
| Action | v0.17.1 | New source |
|---|---|---|
| Cold opening with a new private cache | 44.5460 s | 33.4981 s |
| Complete one-channel raw FFT | 2.8023 s | 2.8355 s |
| First raw H1, seven responses, L=2048 | 1.7976 s | 1.7980 s |
| Filter readiness following prior analysis | 4.0620 s | 0.3475 s |
| First processed FFT | 4.0623 s | 3.3617 s |
| Repeated processed FFT | 4.3191 s | 3.4220 s |
| First processed H1 | 3.7067 s | 2.2176 s |
| Peak WS for the complete FFT/FRF/filter sequence | 2116.80 MiB | 2545.93 MiB |
- 46 numerical scenarios, three pairs, 1656 calls: N=4096/4093/337132,
one/seven channels or responses, mean on/off, Auto, L=2048/2050 and Direct.
Complete result/mask/main-metadata stream fingerprints agree. This is stream
validation, not a separately measured maximum error. - All 54,656,000 processed real test2 values agree with the frozen control:
finite/Inf values bitwise, NaN by status. Coverage includes test1, all 16
filter family/mode combinations, different chunk boundaries, gaps, NaN/Inf,
overflow, cancellation, trim, ownership and busy-executor fallback. - Seven Zoom+PNG pairs on 58.19 MB showed no slowdown; final pixels match.
Initial approximately 14% numerical outliers and short GUI delays did not
reproduce in additional controls. Universal acceleration is not claimed. - Latest regressions: 1357 core and 1036 GUI checks passed; official CLI/GUI
builds use the clean new tag before packaging. Tests are in the repository.
Signing infrastructure previously passed
25 checks; positive verification of a real signature awaits service access.
Known limitations
- Processed retention trades RAM for repeat speed: full-sequence Peak WS rose
by approximately 429 MiB. Data + analysis admission is not a process-wide
memory cap. Low admission chooses bounded blocks/disk. - Confirmed disk regressions remain: Manual 64 MiB, synthetic 58.19 MB,
two pairs with reversed order: returning to raw FFT 2.208 → 2.487 s (+12.6%),
first raw H1 1.735 → 1.846 s (+6.4%). Numerical outputs agree and Peak WS
stays around 29 MiB; the slowdown has not yet been localized. - A separate comparison with the preceding working snapshot found new-process
first-graph readiness with a cached overview changed 0.0597 → 0.3200 s due
to upfront resident preparation, followed by faster navigation. This is a
different snapshot/condition from the table above. - Disk filtering may require exact prefix warm-up without continuations. Disk
FFT needs scratch space/time; large Direct/Auto L can return ResourceLimit
rather than silently reducing N/L. CLI loading remains resident. Existing
index/cache disk quotas still apply. - New tests cover a real file up to 1.024 GB. Historical synthetic 10 GB tests
belong to rc.3; these changes were not rerun on 10 GB or physical 8 GiB
hardware. There is no new comparable FAMOS test. Current scope is up to
10 GB; new 20 GB tests are excluded.
Distribution: Windows x64 GUI EXE and SHA256SUMS.txt. Documentation, signing
policy, GNU GPLv3 LICENSE and source code are available in the repository.