Ошибка "Memory is Full"

Простейшие вопросы в области инженерной разработки

Ошибка "Memory is Full"

Postby Елизавета on 11 Nov 2017, 10:53

Всем привет! Написана программа для генерации и сбора данных. Разумеется имеет место несколько массивов, которые содержат большое количество данных (осциллограммы, оцифрованные конечные данные). Более того, на выходе программы записывается массив данных в файл, содержащий в себе зависимость сигнала одного канала АЦП от другого. Возникает ошибка "Memory is Full". И вот что странно: на более мощном компьютере при запуске .exe файла ошибки нет, но при запуске приложения со слабенького нетбука она возникает. В чем может быть подвох и в чем причина? Как узнать, какой тип переменных у меня формирует массив U8 или более громоздкий? Это ведь тоже может повлиять на возникновение ошибки? Или же дело не в моей программе, а в возможностях ПК? Помогите, пожалуйста, разобраться)))
Attachments
Mag.vi
ПРОГА
(200.14 KiB) Downloaded 8 times
Елизавета
interested
interested
 
Posts: 9
Joined: 28 Jul 2017, 13:50
LabVIEW Version: 2013
Karma: 0

Re: Ошибка "Memory is Full"

Postby IvanLis on 11 Nov 2017, 14:17

Елизавета wrote:Как узнать, какой тип переменных у меня формирует массив U8 или более громоздкий?

Размер данных для каждого типа известен: Numeric Data Types Table.
В таблице данные для одного элемента, соответственно для массива, можно умножать (размером поля где прописан размер массива можно пренебречь).
User avatar
IvanLis
professor
professor
 
Posts: 4470
Joined: 02 Dec 2009, 17:44
Location: СССР
Medals: 7
Activity (2) Professionalism (1) Tutorials (1) Gold (1) Man of the year 2012 (1)
Автор (1)
LabVIEW Version: 2010
Karma: 692
hardware VIP bloggers teachers

Re: Ошибка "Memory is Full"

Postby dadreamer on 11 Nov 2017, 16:35

Елизавета wrote:Как узнать, какой тип переменных у меня формирует массив U8 или более громоздкий?

Выведите размеры каждого массива (Array Size). Посмотрите, где сколько элементов. Если где-то их слишком много (скажем, больше миллиона), то надо подумать, что с этим делать.
От компьютера зависит. Например, на моем домашнем компе с 8 ГБ ОЗУ :labview: 2017 64-bit даёт спокойно создать 1-мерный массив U8 из MaxInt (т.е., 2147483647) элементов. Но, если я захочу создать 2-мерный массив U8 размерности MaxInt x MaxInt, то :labview: мне это не позволит - "Not enough memory to complete this operation", и далее "Memory is full". На более слабой машине эта граница будет ещё ниже. Разрядность :labview: и разрядность системы также влияют.
User avatar
dadreamer
doctor
doctor
 
Posts: 2897
Joined: 17 Feb 2013, 16:33
Medals: 4
Activity (1) Professionalism (1) Автор (2)
LabVIEW Version: 2.5 — 2017
Karma: 709
I/O VIP vision internet

Re: Ошибка "Memory is Full"

Postby Blackman on 11 Nov 2017, 20:21

Выведите размеры каждого массива (Array Size). Посмотрите, где сколько элементов. Если где-то их слишком много (скажем, больше миллиона), то надо подумать, что с этим делать...

Беглый взгляд на BD дал следующие результаты:
-----------------------------------------------------------------------------------------------------
DAQmx Analog Output Task
Number of Channels = 2
Generate Mode = Finite (N Samples)
Number Samples to write = 10.000.000
Sample Rate = 100.000 Hz (100 kHz)
DAQmx Output Buffer Size = 10.000.000 x 8 x 2 = 160.000.000 bytes (~ 160 Mb)
---------------------------------------------------------------------------------------------------
DAQmx Analog Input Task
Number of Channels = 2
Generate Mode = Continuous Samples
Number Samples to read = 10.000.000
Sample Rate = 100.000 Hz (100 kHz)
DAQmx Input Buffer Size = 10.000.000 x 8 x 2 = 160.000.000 bytes (~ 160 Mb)
-----------------------------------------------------------------------------------------------------
= 360 Mb
Попытка создать Triangle Wave длинной 10^9 точек привела к полной блокировке системы WIN10 -x64 -4Г ОЗУ - 7Г Виртуальная - LV2016 (64) :cantbe:
Blackman
leader
leader
 
Posts: 685
Joined: 17 Jan 2016, 15:02
Medals: 1
Activity (1)
LabVIEW Version: 6.1,8.5,20
Karma: 171


Return to Для чайников

Who is online

Users browsing this forum: No registered users and 12 guests

cron