Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.05.22;
Скачать: CL | DM;

Вниз

как обойти ограничение в 2 Гб. для стримов?   Найти похожие ветки 

 
Scott Storch   (2011-02-15 11:51) [0]

приложение загружает файлы статистики по интернет-магазинам. если загружается слишком большой файл (> 2 Гб.) - сыпется стрим. что посоветуете?


 
clickmaker ©   (2011-02-15 11:52) [1]

какой стрим? TFileStream? и что значит "сыпется"?


 
oldman ©   (2011-02-15 11:53) [2]

Загружать кусками


 
Scott Storch   (2011-02-15 12:01) [3]


> какой стрим?


TMemoryStream


> что значит "сыпется"?


когда TMemoryStream.Size > 2 Гб. - сообщение out of memory


 
Стрим   (2011-02-15 12:02) [4]

2 Гб - ограничение на доступное адресное пространство процесса для 32-битных ОС MS Windows XP, Vista...

То есть, если ты TMemoryStream использовал, то, значит, неправильно использовал, потому что он больше 2 ГБайт не сможет хранить.

TFileStream тут не при чем, он внутри как 32-битный, так и 64-битный. То есть, 2 ГБайта для него - не предел. То есть, если ты использовал где-то в своей программе integer для работы с потоком, то это и твоя ошибка.

Так что грузи не весь файл статистики, а разбирай его по записям, последовательно. При правильной реализации, проблем с памятью не будет. Никогда.

P.S. Сообщение об ошибке: "Ахтунг! Стрим рассыпался!"...


 
oldman ©   (2011-02-15 12:04) [5]

Что же это за статистика такая, больше 2-х гиг?


 
clickmaker ©   (2011-02-15 12:05) [6]

> [3] Scott Storch   (15.02.11 12:01)

рекомендую глянуть в сторону memory-mapped files


 
Стрим   (2011-02-15 12:13) [7]

>out of memory

Это переводится не как "стрим рассыпался", а как "нету памяти".
Если тебя интересует именно обзод ограничения в 2 ГБайта, то надо писать 64-разрядный софт под 64-разрядные ОС, для чего воспользоваться 64-разрядным компилятором. Delphi такого не умеет. Хотя, говорят, что, возможно, в некоем обозримом будущем, таки научится. Но, если честно, то лучше не ждать выхода 64-разрядного компилятора Delphi, а переписать программу, реализовав последовательный анализ по записям. Потому что программа анализа статистики, пожирающая ОЗУ в объемах, равных размеру файла статистики - не программа, а монстр какой-то. Тебе так никакой ОС не хватит. Ни 32-разрядной, ни 64-разрядной, ни 128...

Представь себе человека, который вначале бессознательно зазубривает наизусть весь роман "Войну и Мир", а потом закрывает глаза, и, вспоминая зазубренное, начинает  проникаться атмосферой произведения и гением автора. Тупо? Твоя программа именно так и делает.


 
Palladin ©   (2011-02-15 12:22) [8]

вас бы обратно в дос, мигом экономить научились бы... беспредельщики )


 
brother ©   (2011-02-15 12:26) [9]

во времена дос и железо скромнее было;) а сейчас - уже можно ;)


 
oldman ©   (2011-02-15 13:30) [10]


> brother ©   (15.02.11 12:26) [9]


Во времена дос таких файлов не было :)))


 
Германн ©   (2011-02-15 13:48) [11]


> Во времена дос таких файлов не было

Во времена дос таких дисков даже не было, не то что файлов! )))


 
Dimka Maslov ©   (2011-02-15 15:00) [12]


> вас бы обратно в дос, мигом экономить научились бы... беспредельщики
> )


Кто видел ссылку на рассказ про один байт?


 
clickmaker ©   (2011-02-15 15:11) [13]

http://www.wasm.ru/article.php?article=onebyte


 
KSergey ©   (2011-02-15 17:22) [14]

> clickmaker ©   (15.02.11 15:11) [13]

Ахинея.


 
Jeer ©   (2011-02-15 17:58) [15]


> clickmaker ©   (15.02.11 15:11) [13]


Заворот мозга у автора.


 
Anatoly Podgoretsky ©   (2011-02-15 19:24) [16]


> TMemoryStream

И тебя не смущает слово Memory?
В 32 битной программи Memory не может быть более 2 гб, если не считать некоторых экзотических случаев.


 
KilkennyCat ©   (2011-02-15 19:54) [17]

не то чтоб ахинея или заворот мозга, просто бессмыслица. любой может так пожаловаться. особенно если не своим делом занимается или начинает сравнивать с другими областями.


 
имя   (2011-02-15 22:38) [18]

Удалено модератором


 
Вариант   (2011-02-16 09:09) [19]


> clickmaker ©   (15.02.11 15:11) [13]

Понравилось:-)



Страницы: 1 вся ветка

Текущий архив: 2011.05.22;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.008 c
15-1296654994
pavel_guzhanov
2011-02-02 16:56
2011.05.22
Конференция по FastReport. Может быть кого-нибудь заинтересует?


2-1297684583
Den
2011-02-14 14:56
2011.05.22
Уменьшить размер памяти занимаемой приложением


6-1237262725
alshtam
2009-03-17 07:05
2011.05.22
вопрос по Indy


15-1296342105
@!!ex
2011-01-30 02:01
2011.05.22
Delphi ломает hadl linkи


2-1297871090
Gu
2011-02-16 18:44
2011.05.22
Variant 2 String