Страница: 1 |
ситуация оказалась проста, в мыслях, но не практике) часто требуется скопировать с одного места в другое файлы, работаю стандартным способом: прочитал оттуда - записал туда поизменял размер буфера чтения: чем выше, тем быстрее ессесно но когда попадаются файлы около 600МБ, как не удивительно, но не хватает моей памяти (512МБ) как узнать, сколько свободно памяти в системе для создания байтового масива, скорей всего надо звать на помощь API, но я в этом ни бум-бум, и буду весьма благодарен, если пришлёте пример sakmancomp@bigmir.net спасибо_)
Возможно, следует использовать способ игры "больше-меньше". Сперва просишь у Винды много-много памяти (GlobalAlloc, кажется). Винда показывает то, что обычно бывает в книгах, затем просишь в 2 раза меньше. Если разрешает, то в 1,5 раза больше, если нет, то в 2 раза меньше... И так далее, за 32 запроса наверняка получишь, сколько максимально она тебе может дать... Успеха! Страница: 1 |
Вопрос: сколько доступно памяти под массив?
Добавлено: 06.08.03 22:24
Автор вопроса: Champion | Web-сайт:
каждый из которых от 30МБ до 600МБ ...
тогда поставил буфер на максимум, чтобы читал весь файл целиком
всё гУд, копирует файлы на 1\3 быстрее самого виндовса
чтобы не возникало ошибки "Out of memory"?
если есть пример, подскажите ПОЖАЛУЙСТА!
или точнее покажите)
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
.:: St!X ::.
ICQ: 339888425
Вопросов: 13
Ответов: 51
Web-сайт:
Профиль | | #1
Добавлено: 08.08.03 15:12
Вообче если верить Intel то 32 разрядный процессор адресует для каждого приложения до 4Гб память (ессно используя файл подкачки - це реализовано на аппаратном уровне самого проца и поддерживается менеджером мемора винды). Другое дело, что память имеет 6 сегментов (данные, код, стек, 3 дополн. которые в принципе можно использовать для хранения данных). Из етого следует: увеличиваем буфер - заставляем винду сбрасывать неиспользуемые страницы в файл подкачки, а также его переупорядочивать. Не сложно догадаться к чему это приводит (игрухи грузил, слышал что с винтом деется...)
Номер ответа: 2
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #2
Добавлено: 09.08.03 19:19