Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2011.05.22;
Скачать: [xml.tar.bz2];

Вниз

как обойти ограничение в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.004 c
15-1296854977
Юрий
2011-02-05 00:29
2011.05.22
С днем рождения ! 5 февраля 2011 суббота


1-1254548466
newbart
2009-10-03 09:41
2011.05.22
Меню для TMemo, TEdit


2-1297442025
Token
2011-02-11 19:33
2011.05.22
TTreeView и галочки


15-1297153035
И. Павел
2011-02-08 11:17
2011.05.22
Отправка писем на русском языке


15-1297078540
Bat-an
2011-02-07 14:35
2011.05.22
Надо вызвать из батника две программы одновременно





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский