Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: сколько доступно памяти под массив? Добавлено: 06.08.03 22:24  

Автор вопроса:  Champion | Web-сайт: afhelp.in.ua | ICQ: 461506481 

ситуация оказалась проста, в мыслях, но не практике)

часто требуется скопировать с одного места в другое файлы,
каждый из которых от 30МБ до 600МБ ...

работаю стандартным способом: прочитал оттуда - записал туда

поизменял размер буфера чтения: чем выше, тем быстрее ессесно
тогда поставил буфер на максимум, чтобы читал весь файл целиком
всё гУд, копирует файлы на 1\3 быстрее самого виндовса

но когда попадаются файлы около 600МБ, как не удивительно, но не хватает моей памяти (512МБ)

как узнать, сколько свободно памяти в системе для создания байтового масива,
чтобы не возникало ошибки "Out of memory"?

скорей всего надо звать на помощь API, но я в этом ни бум-бум,
если есть пример, подскажите ПОЖАЛУЙСТА!
или точнее покажите)

и буду весьма благодарен, если пришлёте пример sakmancomp@bigmir.net

спасибо_)

Ответить

  Ответы Всего ответов: 2  

Номер ответа: 1
Автор ответа:
 .:: St!X ::.



ICQ: 339888425 

Вопросов: 13
Ответов: 51
 Web-сайт: www.ks-brand.ru
 Профиль | | #1
Добавлено: 08.08.03 15:12
Вообче если верить Intel то 32 разрядный процессор адресует для каждого приложения до 4Гб память (ессно используя файл подкачки - це реализовано на аппаратном уровне самого проца и поддерживается менеджером мемора винды). Другое дело, что память имеет 6 сегментов (данные, код, стек, 3 дополн. которые в принципе можно использовать для хранения данных). Из етого следует: увеличиваем буфер - заставляем винду сбрасывать неиспользуемые страницы в файл подкачки, а также его переупорядочивать. Не сложно догадаться к чему это приводит (игрухи грузил, слышал что с винтом деется...)

Ответить

Номер ответа: 2
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #2
Добавлено: 09.08.03 19:19

Возможно, следует использовать способ игры "больше-меньше". Сперва просишь у Винды много-много памяти (GlobalAlloc, кажется). Винда показывает то, что обычно бывает в книгах, затем просишь в 2 раза меньше. Если разрешает, то в 1,5 раза больше, если нет, то в 2 раза меньше... И так далее, за 32 запроса наверняка получишь, сколько максимально она тебе может дать...

Успеха!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам