При выполнении научных исследований необходимо сохранять данные проведенных вычислительных экспериментов. Наивный подход это сохранение всей информации в неструктурированный текстовый файл. У этого подхода есть множество недостатков:
- чтобы понять что содержится в файле его нужно явно прочитать
- не фиксированный формат файла увеличивает время обращения к информации
- данные находящиеся в файле требуют постобработки как для визуализации, так и для любых других целей
Чтобы решить названные проблемы был разработан специальный формат файла и механизм визуализации.
Результаты эксперимента сохраняются в JSON файл в следующем формате (версия 0.2.0):
- meta, объект - описание проводимого эксперимента в произвольном формате.
- constantParams, массив - массив неизменяемых параметров алгоритма
- name, строка - название параметра
- units, строка - единицы измерения параметра
- value, число или строка - значение константы
- changedParams, массив - массив изменяемых параметров алгоритма
- name, строка - название параметра
- units, строка - единицы измерения параметра
- measuredParams, массив - массив измеряемых параметров алгоритма
- name, строка - название параметра
- units, строка - единицы измерения параметра
- Зафиксированный (прямой) параметр
- type, "direct" - зафиксированный (прямой) параметр, реально измеренный параметр
- Косвенный параметр
- type, "indirect" - косвенный параметр, являющийся суммой нескольких прямых параметров
- sumOf, массив строк - названия прямых параметров
- measures, объект - данные по каждому измерению. Хранятся по measureKey (см. пример)
- measureKey, строка - уникальный ключ каждого измерения. Рекомендуется собирать его как набор всех изменяемых параметров + номер прогона.
- passId, число - номер прогона
- changedParams.name, число - значения всех изменяемых параметров, зафиксиованных на время прогона
- measuredParams.name, число - значения всех измеренных параметров, полученных во время прогона
- raw, объект - произвольные данные о прогоне, которые вы хотите сохранить. Например чтобы в будущем перепроверить значения измеренных параметров
- version, строка - версия формата. В систему встроен мигратор, автоматически обновляющий файлы в старом формате до нового для обеспечения обратной совместимости.
Для файлов указанного типа разработан просмотровщик в виде интерактивной веб-страницы. Использование - откройте app.html в браузере.
Внимание! В текущий момент визуализатором поддерживается только один изменяемый параметр.
В комплекте с визуализатором идёт база с результатами эксперимента, который иллюстрирует основные функции просмотра.
Для загрузки своих данных нажмите кнопку "Загрузить базу из файла" в правом верхнем углу программы.
При загрузке база будет обновлена с помощью мигратора до актуального формата, если в этом есть необходимость. После мигратора база валидируется с помощью JSON schema. При обнаружении проблем будет выведено сообщение об ошибке. Поскольку в базе ошибок может быть найдено очень много, все они выводятся в консоль браузера в текущей реализации.
Вы можете выполнить примеры вычислительных экспериментов, возращающих результат в Measurelook формате. Использование - откройте example.html в браузере и следуйте инструкциям.
Ленивый вариант - открыть Measurelook с моего сайта http://trechkalov.com/measurelook/app.html
Автономный вариант - скачивать релиз, распаковывать, запустить app.html
В: Какой используется бэкенд?
О: Бэкенд не используется. В данном случае бэкенд это JSON объект в памяти, а DBMS это интерфейс для взаимодействия с ним.