![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
andrewr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 16.2.2006 Репутация: нет Всего: нет |
Есть 2 Tmemorystream и в каждый надо загрузить файл по 300 мб, первый загружаю, на втором у меня вылетает ошыбка: Out of memory :-( Помогите пожалуста :-(
Это сообщение отредактировал(а) andrewr - 30.1.2010, 21:21 |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Почему не воспользоваться TFileStream?
Вообще, 600 Мб - не предел для программы. Сейчас загрузил 2 файла по 330 (примерно) мегабайт - никаких проблем, кроме роста занятой памяти. Короче говоря - код в студию ![]() Это сообщение отредактировал(а) kami - 30.1.2010, 21:46 |
|||
|
||||
DarkProg |
|
|||
![]() Законченный романтик ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1784 Регистрация: 11.3.2009 Где: Земля Репутация: 2 Всего: 19 |
А ОЗУ хоть хватает куда загружать??? Хотя судя по всему, Ошибка в 17-ой строке. -------------------- "И твоя голова всегда в ответе за то куда сядет твой зад..." "Я студент - скажите с какого я ВУЗа..." ![]() ![]() ![]() |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
Кроме этого программа загружает другие большие данные в память?
Просто есть такая вещь как дефрагментация памяти и при определенных условиях может случиться, что свободной памяти много, но нет непрерывного свободного куска размером 300МБ. А так |
|||
|
||||
andrewr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 16.2.2006 Репутация: нет Всего: нет |
Код как таковой дать не могу
![]() ![]() код приблизительно такой:
во время цыкла вылетает ошыбка - когда уже размер програмы в раме доходит до 512-514 мб(как когда). |
|||
|
||||
kami |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Так не загружайте файл целиком-то!
Обрабатывайте его кусками по 10 Мб. -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Matematik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
andrewr,
В обычных условиях одной программе доступно только 2ГБ. Возьми последнюю версию FastMM http://sourceforge.net/projects/fastmm/ Подключи к проекту FastMM4.pas первым модулем, так
включи в свойствах проекта отладочную версию Build Configuration = Debug в папку с *.exe положи FastMM_FullDebugMode.dll откомпилируй свою программу, запусти чтоб ошибка появлялась и если были утечки памяти, после закрытия программа выдаст окошко с соответствующим сообщением и в файл имяпрограммы_MemoryManager_EventLog.txt сохраниться подробный отчет где\что "подтекает" Плюс посмотри в папке demo есть пример Usage Tracker, он показывает состояние памяти программы, может действительно её не хватает. Это сообщение отредактировал(а) Matematik - 31.1.2010, 22:32 |
|||
|
||||
Лапоть |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 185 Регистрация: 3.4.2009 Репутация: нет Всего: 2 |
А зачем открывать ВТОРОЙ поток? Считал в первый и юзай его свойство Memory для побайтового декриптования, а потом сохрани в файл под нужным именем.
|
|||
|
||||
artsb |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2280 Регистрация: 17.7.2007 Где: центр Вселенной Репутация: 6 Всего: 64 |
Согласен с kami. Зачем юзать TMemoryStream, если можно использовать TFileStream. Конечно будет работать немного медленнее, но так хотя бы можно проверить была ли проблема в оперативке. -------------------- Чем отличается умный человек от мудрого? Умный - выпутается из любой ситуации. Мудрый - просто в неё не попадёт. |
|||
|
||||
Mikel |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 882 Регистрация: 30.3.2002 Где: Саратов Репутация: 1 Всего: 2 |
Еще придирки принимаются?
![]()
-------------------- ...so remember, it's better to burn out than to fade away |
|||
|
||||
andrewr |
|
|||
Новичок Профиль Группа: Участник Сообщений: 27 Регистрация: 16.2.2006 Репутация: нет Всего: нет |
Сделал Tfilestreamб проблема решилась
![]() ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |