• Регистрация
Н/Д
Н/Д 0.00
н/д

Преобразование данных их xml-файла

29.09.2020
Написал конвертер xml-файла данных с устройства сбора данных. xml прилагаю. Данные пишутся раз в секунду всего 20 сигналов. Длина записи - 1 час. Преобразовывается файл правильно, НО ОЧЕНЬ долго. Как...

Написал конвертер xml-файла данных с устройства сбора данных. xml прилагаю. Данные пишутся раз в секунду всего 20 сигналов. Длина записи - 1 час. Преобразовывается файл правильно, НО ОЧЕНЬ долго. Как можно оптимизировать код??

Теги

    29.09.2020

    Комментарии

    • kurguz
      kurguz+270.00
      29.09.2020 11:04

      Начинать в таких случаях нужно с профилировки кода.

      Нужно понять, что за класс вы используете, который съедает все время. 

      По поводу остального кода:

      1. Попробуйте обойтись без циклов.

      2. Переменная Signal - это структура весом 20Мб. Вероятно стоит пооптимизировать способ хранения данных или типы полей структуры.

      3. Структура Signal увеличивает размер на каждой итерации, стоит выделить под нее память до запуска цикла, в том числе проинициализировать все свойства полей.

      Посмотрите вот эту справку: https://www.mathworks.com/help/releases/R2020b/matlab/performance-and-memory.html 

      П.С. Я бы парсил такой xml регулярными выражениями, это будет не очень сложно и даст максимальную производительность. Если регулярки не любите, то можно заменить их новыми фнкциями pattern, extract и т.д.