Замедление работы с файлами

Работа с файлами и базами данных
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5362
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Замедление работы с файлами

Сообщение IvanLis »

Artem.spb писал(а): 23 сен 2022, 23:39 По TDMS интересная мысль, забыл, что они позволяют и удалять часть данных, но пока не придумал, как с координатами разобраться. Метку времени как-то придётся туда запихать.
TDMS не очень подходит, хотя это в принципе и есть своеобразная СУБД, где хранятся бинарные данные.
Но ввиду периодического удаления ненужных данных потребуется периодическая дефрагментация и переиндексация.
Ели писать в отдельные файлы, то получаем как и сейчас...
Artem.spb писал(а): 23 сен 2022, 23:39 Получается, что если часто дёргать (неоптимально) память, то :labview: замедляется. Причём и при обращениях к диску. Это при том, что ~90% памяти пустует.
А не пробовал сразу выделить буфер (массив) и работать с ним без переиндексации, что бы память не дергать больше?
Передавать данные по ссылке на этот буфер (как рекомендовали выше), что бы избежать копирования.
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2979
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 27 раз
Поблагодарили: 124 раза
Контактная информация:

Re: Замедление работы с файлами

Сообщение Artem.spb »

IvanLis писал(а): 24 сен 2022, 11:36 А не пробовал сразу выделить буфер (массив) и работать с ним без переиндексации, что бы память не дергать больше?
Передавать данные по ссылке на этот буфер (как рекомендовали выше), что бы избежать копирования.
Переделка в этом и заключалась. вычислить, какой будет буфер, выделить его разом, а потом заполнять кусками из файлов.
Пока только сделал, для проверки надо копить буфер.
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5362
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Замедление работы с файлами

Сообщение IvanLis »

Artem.spb писал(а): 25 сен 2022, 00:21 Переделка в этом и заключалась. вычислить, какой будет буфер, выделить его разом, а потом заполнять кусками из файлов.
Пока только сделал, для проверки надо копить буфер.
Какой максимально возможный...
Может быть взять сразу по максимуму то системы.
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2979
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 27 раз
Поблагодарили: 124 раза
Контактная информация:

Re: Замедление работы с файлами

Сообщение Artem.spb »

IvanLis писал(а): 25 сен 2022, 00:53 Может быть взять сразу по максимуму то системы.
1Тб? Зачем?
Нужно отобразить суточный график, частота 2 кГц -> вычисляю длину массива -> резервирую его -> читаю файлы и последовательно replace arry subset
Аватара пользователя
IvanLis

Activity Professionalism Tutorials Gold Man of the year 2012
Автор
guru
guru
Сообщения: 5362
Зарегистрирован: 02 дек 2009, 17:44
Награды: 7
Версия LabVIEW: 2015, 2016
Откуда: СССР
Благодарил (а): 25 раз
Поблагодарили: 68 раз

Re: Замедление работы с файлами

Сообщение IvanLis »

Artem.spb писал(а): 25 сен 2022, 01:22 Нужно отобразить суточный график, частота 2 кГц -> вычисляю длину массива -> резервирую его -> читаю файлы и последовательно replace arry subset
Резервирование каждый раз выполняется или один раз при запуске программы?
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2979
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 27 раз
Поблагодарили: 124 раза
Контактная информация:

Re: Замедление работы с файлами

Сообщение Artem.spb »

IvanLis писал(а): 25 сен 2022, 23:19 Резервирование каждый раз выполняется или один раз при запуске программы?
Каждый, потому что длина выборки меняется. Режим расчёта меняется. И много чего. Не думаю, что там есть смысл сразу выделить большой кусок.
Ну так банально.
Выделить, заполнить, отправить FFT считать. Буфер "исчез".
Borjomy_1

Activity Professionalism Silver
doctor
doctor
Сообщения: 2107
Зарегистрирован: 28 июн 2012, 09:32
Награды: 3
Версия LabVIEW: 2009..2020
Откуда: город семи холмов
Благодарил (а): 20 раз
Поблагодарили: 15 раз

Re: Замедление работы с файлами

Сообщение Borjomy_1 »

Человек может одновременно увидеть и осознать ограниченное количество данных. Здесь гигантская разница между реализацией и физическими возможностями оператора. Надо радикально перерабатывать концепцию программы.
Artem.spb

Activity Автор
doctor
doctor
Сообщения: 2979
Зарегистрирован: 31 июл 2011, 23:05
Награды: 2
Версия LabVIEW: 12-18
Благодарил (а): 27 раз
Поблагодарили: 124 раза
Контактная информация:

Re: Замедление работы с файлами

Сообщение Artem.spb »

Borjomy_1 писал(а): 26 сен 2022, 10:36 Человек может одновременно увидеть и осознать ограниченное количество данных. Здесь гигантская разница между реализацией и физическими возможностями оператора. Надо радикально перерабатывать концепцию программы.
Это вообще невозможно :)
Но с другой стороны, что не может в этом случае разглядеть оператор?
FFT 0-300Гц? построенное на выборке 24 часа?
Изменение сигнала за сутки на общей выборке? Да, детали там не видны, но общая картина вполне ясная, а дальше можно детальнее рассматривать интересующий участок.
У меня к этому проекту больше претензий не в плане картинок, а уже на этапе сбора данных. Но туда меня вообще не подпускают.
ujin1
assistant
assistant
Сообщения: 105
Зарегистрирован: 06 ноя 2020, 15:37
Версия LabVIEW: 19
Благодарил (а): 5 раз
Поблагодарили: 14 раз
Контактная информация:

Re: Замедление работы с файлами

Сообщение ujin1 »

Artem.spb писал(а): 23 сен 2022, 23:39 Получается, что если часто дёргать (неоптимально) память, то :labview: замедляется. Причём и при обращениях к диску. Это при том, что ~90% памяти пустует.
По возможности убрать выделение и удаление памяти. Оставить изменение размера
Посмотреть Desktop Execution Trace Toolkit.
Может есть утечка памяти где-нибудь.
trace execution toolkit.png
Вариант разделить на сервер и клиент. Сервер на NI Linux RT работает с диском читает в память передает большим куском. Клиент работает с ОЗУ.
С учетом постепенной подгрузки сетевой обмен гигабитный может не быть узким местом.
Изображение
Ответить

Вернуться в «Сохранение данных»