Преобразование данных их xml-файла
29.09.2020
Написал конвертер xml-файла данных с устройства сбора данных. xml прилагаю. Данные пишутся раз в секунду всего 20 сигналов. Длина записи - 1 час. Преобразовывается файл правильно, НО ОЧЕНЬ долго. Как...
Написал конвертер xml-файла данных с устройства сбора данных. xml прилагаю. Данные пишутся раз в секунду всего 20 сигналов. Длина записи - 1 час. Преобразовывается файл правильно, НО ОЧЕНЬ долго. Как можно оптимизировать код??
Комментарии
Начинать в таких случаях нужно с профилировки кода.
Нужно понять, что за класс вы используете, который съедает все время.
По поводу остального кода:
1. Попробуйте обойтись без циклов.
2. Переменная Signal - это структура весом 20Мб. Вероятно стоит пооптимизировать способ хранения данных или типы полей структуры.
3. Структура Signal увеличивает размер на каждой итерации, стоит выделить под нее память до запуска цикла, в том числе проинициализировать все свойства полей.
Посмотрите вот эту справку: https://www.mathworks.com/help/releases/R2020b/matlab/performance-and-memory.html
П.С. Я бы парсил такой xml регулярными выражениями, это будет не очень сложно и даст максимальную производительность. Если регулярки не любите, то можно заменить их новыми фнкциями pattern, extract и т.д.