Страница: 1 |
Вопрос: Какая максимальная длина массива? | Добавлено: 08.09.04 07:54 |
Автор вопроса: ![]() |
Мне нужно создать 2-х мерный массив
M(100000,100000) выдает ошибку Out of memmory Что делать? |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #1 | Добавлено: 08.09.04 12:23 |
Ну ты и жадный!!! Ты заказываешь 10 в 10-й степени элементов...
А 4 массива arrMSmall(50000) помогут? Или 16 массивов arrMSmall(25000) ? Кстати, все эти "маленькие" массивы можно засунуть в один "большой" массив: Private Sub Command1_Click() 'Dim arrTest(100000, 100000) As Integer ![]() ![]() ![]() ![]() ![]() arrBig(0, 0) = arrSmall0 arrBig(0, 1) = arrSmall1 arrBig(1, 0) = arrSmall2 arrBig(1, 1) = arrSmall3 arrBig(0, 1)(1) = 12 MsgBox arrBig(0, 1)(1) End Sub У меня это работает. Успехов! |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 08.09.04 12:51 |
Извини, ошибся. Надо было писать
А 4 массива arrMSmall(50000, 50000) помогут? Или 16 массивов arrMSmall(25000, 25000) ? Тогда программа будет выглядеть: Private Sub Command1_Click() 'Dim arrTest(100000, 100000) As Integer ![]() ![]() ![]() ![]() ![]() arrBig(0, 0) = arrSmall0 arrBig(0, 1) = arrSmall1 arrBig(1, 0) = arrSmall2 arrBig(1, 1) = arrSmall3 arrBig(0, 1)(1, 1) = 12 MsgBox arrBig(0, 1)(1, 1) End Sub Тоже вылетает... Вариант arrSmall0(50000, 50000) еще проходит, но больше - нет. |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 08.09.04 12:53 |
arrSmall0(5000, 5000) |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 08.09.04 13:10 |
Э... ну... это почти 10Гб... Это при том если ты будешь использовать байтовый массив, если целочисленный, умножай на 2, если Лонг типа, умножай на 4, если Дабле, или что подобное - умножай на 8 ![]() Вообще процессу положено юзать 4Гб памяти и только 2Гб можешь использовать ты для своих данных... Хотя нет, ошибся, ты сможешь использовать 3Гб памяти, но это только при условии использования какого-то там ключа для компилятора... Если ты работаешь с большими файлами, то тебе предлагается использовать FileMapping... В общем так просто ты такой нехилый массив не создашь... |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 232969505 Вопросов: 10 Ответов: 74 |
Профиль | Цитата | #5 | Добавлено: 08.09.04 14:47 |
Можно попробовать юзать табличку в БД. Дольше конечно и геморойней доступ к элементам но зато не будет проблем с памятью. |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #6 | Добавлено: 10.09.04 02:46 |
А какая такая модная БД поддержит столько полей в таблице? |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 178155071 Вопросов: 21 Ответов: 52 |
Профиль | Цитата | #7 | Добавлено: 10.09.04 04:10 |
Есть тут одна база, но мня интересует в ней 2 таблицы в одной 25000 записей там детали, изделия, сб.ед...
а другая соответствия.. допустим деталь ID_parent=1 и сборочноая.ед. id_unit=7 и количетсво это детали в сборочной ед. так в этой таблице 110000 записей.. Вот мне надо определить каждую деталь и в какое изделие оно входит.. а прямой связи нет вхождения детали в изделие надо просчитывать перебором.. и складывать количество.. Короче я сделал рекурсивную функцию.. но по моим подсчетам она будет работать 75 дней это много.. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 178155071 Вопросов: 21 Ответов: 52 |
Профиль | Цитата | #8 | Добавлено: 10.09.04 04:13 |
вот я и думал загнать эту таблицу в матрицу где номер строки будет id_parent а номер столбца Id_unit, ну а значение количество, оказалась не так просто..вот с 6 сентября машина круглосуточно работает и только 692 детали из 10000 обработала..гемор сплошняком.. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ICQ: 232969505 Вопросов: 10 Ответов: 74 |
Профиль | Цитата | #9 | Добавлено: 10.09.04 09:14 |
ну дык надо тода сделать таблицу вхождений один раз просчитать а потом из нее выборки делать, а при добавлении сборки сразу делать пометки и в новой таблице.
4RotesByte: А никому такая таблица и не нужна (с таким количеством полей) т.к. выборка из нее будет не то что очень долгой а просто вечной! |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 11 Ответов: 69 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 12.09.04 16:20 |
2 alexis_b:
Ну и я о том же... 2 Born: Что-то я в условия задачи не особо врубился (про таблицы и связи). Такое впечатление, что у вас там просто проблема с нормализацией. Если есть настроение - объясни мне мылом подробнее + структуру таблиц, ключи, связи. |
Страница: 1 |
|