Максимальный размер буфера

Работа с файлами и базами данных

Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 10:23

Есть еще вопрос.

Какого максимального размера буфер на сдвиговых регистрах можно создать в LabVIEW?
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby Borjomy_1 on 02 Jun 2014, 10:38

Для 32- разрядной Windows ограничение 2Гб, для 64 - неизвестно, но много ))))
Borjomy_1
expert
expert
 
Posts: 1827
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 12:09

Спасибо!
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby dadreamer on 02 Jun 2014, 13:29

Размер ограничен оперативной памятью, которую может выделить ОС для одного процесса, и это зависит не только от разрядности системы, но и от разрядности :labview: : viewtopic.php?f=21&t=6000&p=49533
И вот ещё ссылка Memory Limits for Windows Releases, согласно ей получаем такие пределы:
On 32-bit versions of Windows, a single process can map and address no more than 3GB of virtual memory at time. In 64-bit versions of Windows, a 32-bit process can map and address no more than 4GB of virtual memory at a time.

For 64-bit processes, the amount is difficult to calculate as there are numerous overlapping limits that could apply depending on all kinds of factors. It's typically around 7TB.

Однако я с трудом представляю, какой нужно написать код и какие структуры пропускать через регистры, чтобы занять столько памяти. Да и в этом случае о стабильности приложения бессмысленно говорить, :labview: может вылететь в любой момент при компиляции, запуске, завершении работы.
User avatar
dadreamer
professor
professor
 
Posts: 3149
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 800
I/O VIP vision internet

Re: Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 14:27

Спасибо!

dadreamer wrote:Однако я с трудом представляю, какой нужно написать код и какие структуры пропускать через регистры, чтобы занять столько памяти.


Просто есть задача сохранять с платы поток данных, который передается по гигабитному изернету. Хотя я вот попробовал это, и большой скорости передачи что-то не заметил. За минуты 3 только 10 Мбайт передалось.
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 14:29

Кстати и буфер по мере заполнения медленнее заполняться начинает
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby dadreamer on 02 Jun 2014, 14:37

Yuva wrote:есть задача сохранять с платы поток данных, который передается по гигабитному изернету.

А зачем вам абсолютно все данные? Вы же физически не сможете просмотреть и проанализировать такой объем информации. Для архивирования было бы достаточно некоторых средних значений за определенный промежуток времени. Да и в регистрах держать данные не стоит, а лучше писать сразу в файл.
User avatar
dadreamer
professor
professor
 
Posts: 3149
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 800
I/O VIP vision internet

Re: Максимальный размер буфера

Postby Borjomy_1 on 02 Jun 2014, 14:42

Дело в том, что в процессе работы добавления создается новая копия данных. И чем больше, тем медленее этот процесс. Рекомендую выделить сразу необходимый объем памяти, создав перед циклом массив. В цикле делать операцию Replace Array Subset. Однако голову и хвост потребуется контролировать самому. Присмотритесь также к функции "Data Queue PtByPt".
Borjomy_1
expert
expert
 
Posts: 1827
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 14:53

Ну в дальнейшем наверно так у будет. А сейчас пока нужно проверить скорость передачи данных. И какими с потерями или без потерь данные приходят.
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby Yuva on 02 Jun 2014, 15:00

Borjomy_1 wrote:Дело в том, что в процессе работы добавления создается новая копия данных. И чем больше, тем медленее этот процесс. Рекомендую выделить сразу необходимый объем памяти, создав перед циклом массив. В цикле делать операцию Replace Array Subset. Однако голову и хвост потребуется контролировать самому. Присмотритесь также к функции "Data Queue PtByPt".


Спасибо! Попробую
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby Yuva on 03 Jun 2014, 10:02

Borjomy_1 wrote:Дело в том, что в процессе работы добавления создается новая копия данных. И чем больше, тем медленее этот процесс. Рекомендую выделить сразу необходимый объем памяти, создав перед циклом массив. В цикле делать операцию Replace Array Subset. Однако голову и хвост потребуется контролировать самому. Присмотритесь также к функции "Data Queue PtByPt".


Добрый день!

То что Вы имели ввиду можно сделать таким способом или массив обязательно создавать перед циклом?
Буфер udp.jpg

Буфер udp_false.jpg


Буфер все равно медленно заполняется
Attachments
Top_eth2.rar
(43.54 KiB) Downloaded 115 times
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby Borjomy_1 on 03 Jun 2014, 10:55

В принципе и такой вариант с выделением памяти правильный. Но...
У вас есть преобразование.
Буфер udp.png
Сначала вы фактически делаете копию регистра, потом преобразуете ее в строку. В результате на каждой итерации объем данных становится 3 х Накопленный массив. Есть необходимость на каждой итерации писать весь буфер функцией "save text"? Записывайте только принятые данные.
Borjomy_1
expert
expert
 
Posts: 1827
Joined: 28 Jun 2012, 09:32
Location: город семи холмов
Medals: 3
Activity (1) Professionalism (1) Silver (1)
LabVIEW Version: 4-8.6,9-14
Karma: 319
VIP

Re: Максимальный размер буфера

Postby Yuva on 03 Jun 2014, 11:18

Спасибо за замечание!
Переделал. Быстрее стало записывать. Без замедлений. Только вот скорость записи в буфер не столь велика. Если сохранять данные с UDP Read Fuction сразу в файл, то на много быстрее получается. Можно ли как то скорость записи в буфер увеличить?
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Re: Максимальный размер буфера

Postby dadreamer on 03 Jun 2014, 16:43

Yuva wrote:Можно ли как то скорость записи в буфер увеличить?

Можно сделать два параллельных цикла: получение данных и обработка (запись в единый буфер, вывод на экран, прочие действия), обмен данными между циклами организовать через очереди. Но если у вас в общем буфере сотни мегабайт, то всё равно :labview: будет тормозить, чем больше данных, тем сильнее.
User avatar
dadreamer
professor
professor
 
Posts: 3149
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2018
Karma: 800
I/O VIP vision internet

Re: Максимальный размер буфера

Postby Yuva on 05 Jun 2014, 09:07

Здравствуйте!
Спасибо за совет! А у Вас есть какие-нибудь примеры использования очереди? Пришлите пожалуйста, если можете))
Заранее благодарен!
Yuva
beginner
beginner
 
Posts: 32
Joined: 09 Feb 2011, 14:19
LabVIEW Version: 2013
Karma: 0

Next

Return to Сохранение данных

Who is online

Users browsing this forum: No registered users and 4 guests

cron