Вверх ↑
Этот топик читают: Гость
Ответов: 125
Рейтинг: 6
#1: 2017-08-12 18:53:36 ЛС | профиль | цитата
Приветствую, форумчане!
Переделал пример просмотра файлов(больше 4гб), для построчного парсинга файла весом в 8гб. Программа при достижении 10%(~1.5гб. вирт. памяти) вылетает с ошибкой, учитывая, что я ещё даже не обрабатываю строки. Подскажите, пожалуйста, что я делаю не так?
Add(MainForm,11176470,483,315)
{
Left=20
Top=105
Width=650
Height=599
Caption="FileMapVewer"
Position=1
Point(onClose)
}
Add(Hub,2606912,329,231)
{
link(onEvent1,12437222:doOpen,[])
link(onEvent2,4206186:doWork1,[(354,244)])
}
Add(HubEx,4206186,350,350)
{
link(onEvent,554821:doEvent1,[])
}
Add(Hub,4964243,448,182)
{
link(onEvent1,12437222:doRemapping,[(471,188)(471,220)(381,220)(381,244)])
link(onEvent2,4206186:doWork3,[(520,195)(520,394)(354,394)])
}
Add(SharedStream,12437222,392,231)
{
PageMem=1024
Point(FileSize)
Point(FileOffset)
Point(Granularity)
link(Offset,6449920:Result,[])
}
Add(Math,6449920,406,182)
{
Point(doClear)
link(onResult,4964243:doEvent1,[])
link(Op1,6373356:Var3,[(412,170)(481,170)(481,271)])
link(Op2,12437222:SizeMMF,[(419,165)(370,165)(370,270)(412,270)])
}
Add(Charset,786843,476,357)
{
Type=7
link(onCharset,10833509:doEnum,[])
}
Add(Str_Enum,10833509,525,357)
{
Delimiter="\r\n"
OnlyDivGroup=1
link(onEndEnum,6449920:doOperation,[(563,370)(563,162)(394,162)(394,188)])
}
Add(Button,2506679,203,231)
{
link(onClick,2403509:doStart,[])
}
Add(StreamConvertor,7318274,392,357)
{
Mode=6
Point(Data)
link(onResult,786843:doCharset,[])
link(Data,12437222:Stream,[])
}
Add(Hub,554821,364,350)
{
link(onEvent1,13850635:doCalc,[(392,356)(392,286)])
link(onEvent2,7318274:doConvert,[])
}
Add(ProgressBar,9114966,483,280)
{
Left=110
Width=525
}
Add(Thread,2403509,245,231)
{
Delay=10
FastStop=0
link(onExec,9843132:doExecute,[])
}
Add(MathParse,13850635,413,280)
{
MathStr="%2 * 100 / %1"
ResultType=0
link(onResult,15947962:doEvent1,[])
link(X1,12437222:FileSize,[])
link(X2,6373356:Var2,[])
}
Add(GetDataEx,6373356,420,266)
{
link(Data,12437222:FileOffset,[])
}
Add(Hub,15947962,455,280)
{
link(onEvent1,9114966:doPosition,[])
link(onEvent2,11176470:doCaption,[(476,293)(476,321)])
}
Add(ODialog,9843132,287,231)
{
link(onExecute,2606912:doEvent1,[])
}

Редактировалось 1 раз(а), последний 2017-08-12 18:54:13
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2017-08-12 19:28:51 ЛС | профиль | цитата
mrumbert, ну вы бы поставили If-else в разрыв вашего кольца, по условию <= размера файла для окончания процесса. Да и элемент Поток лишний.
карма: 19

0
Ответов: 125
Рейтинг: 6
#3: 2017-08-12 23:17:08 ЛС | профиль | цитата
Леонид, Он до 10% чтения файла доходит только, дальше не идёт, об окончании чтения я уж даже молчу) Для примера можете любой файл весом 8-10гб выбрать. Поток, чтобы форма не зависала, и было видно на какой стадии ошибка вылетает. Без потока тоже вылетает. На втором ПК до 7% доходит, причём стабильно, хотя на втором оперативки больше в 3 раза чем на первом ПК. Смена PageMem на 1-5% изменяет ситуацию, но не исправляет полностью.

Редактировалось 2 раз(а), последний 2017-08-12 23:19:36
карма: 0

0
Ответов: 8887
Рейтинг: 823
#4: 2017-08-13 00:14:08 ЛС | профиль | цитата
mrumbert, попробуйте вручную, от кнопки, запускать, так работает?
от_кнопки.jpg
карма: 19

0
Ответов: 125
Рейтинг: 6
#5: 2017-08-13 06:12:39 ЛС | профиль | цитата
Леонид, Да, работает, до 15% доходит по крайней мере) Видимо он не успевает в цикле освободить память значит) Сделал в разрыв задержку в 1с, отлично работает, спасибо!
карма: 0

0
Ответов: 9906
Рейтинг: 351
#6: 2017-08-13 13:33:03 ЛС | профиль | цитата
Леонид писал(а):
попробуйте вручную, от кнопки, запускать, так работает?
Как бы я в педагогике не очень силен...

Но, это, вообще-то -- чего такое было сейчас
Леонид, ты чему научил юзера
Тому, что чего-то там у нас не успевает настолько, что надо ставить секундные задержки

Сдуреть можно ............

Редактировалось 2 раз(а), последний 2017-08-13 13:48:04
карма: 9

0
Ответов: 8887
Рейтинг: 823
#7: 2017-08-13 13:53:40 ЛС | профиль | цитата
Galkov, так я-то в этом не то что не силён, а совсем "0", а никто не отвечает и Galkov в командировке
А я ничему не учил, коллега сам пришёл к выводу
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#8: 2017-08-13 14:35:51 ЛС | профиль | цитата
А мне кто-нибудь объяснит зачем для
mrumbert писал(а):
построчного парсинга файла
загонять файл, а не строку, в память ?
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 9906
Рейтинг: 351
#9: 2017-08-13 16:32:10 ЛС | профиль | цитата
Tad писал(а):
А мне кто-нибудь объяснит зачем

После того, как ты научишь нас загонять в память нужную строку из 8Г-файла --
Кто-нибудь тебе обязательно объяснит, почему так делать не получится.

Мне так кажется....
карма: 9

0
Ответов: 43
Рейтинг: -2
#10: 2017-08-13 21:00:26 ЛС | профиль | цитата
Galkov, а что не как в былые времена Типа: Я ох..ваю как вы зелёные летаете
з.ы кратко и ясно.
карма: -2

0
Ответов: 16884
Рейтинг: 1239
#11: 2017-08-13 22:02:32 ЛС | профиль | цитата
Galkov писал(а):
Мне так кажется....
Крестись.
Машина Искра 555. ЯМБ.
Оперативка 16кб
ЖД диаметром около 40 см - 5мб
Файл с данными по зарплате на 3500 человек - 4.5 мб.
Посчитай соотношение файла с данными и оперативки.
И ты знаешь - работало без проблем.

--- Добавлено в 2017-08-13 22:07:16

andrestudioEX, ты чего EX добавил ?

Редактировалось 3 раз(а), последний 2017-08-13 22:09:13
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 43
Рейтинг: -2
#12: 2017-08-13 22:36:04 ЛС | профиль | цитата
Tad писал(а):
andrestudioEX, ты чего EX добавил ?

Уже говорил что "Лучшее враг хорошему"
Типа так лучше
bag_report1.png
молчанка в минус шлёпает

Редактировалось 1 раз(а), последний 2017-08-13 22:37:47
карма: -2

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#13: 2017-08-13 22:58:22 ЛС | профиль | цитата
Tad писал(а):
И ты знаешь - работало без проблем.

Назови у нас хоть один компонент для работы с файлами больше 4Гб, кроме SharedStream.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#14: 2017-08-13 23:06:01 ЛС | профиль | цитата
nesco писал(а):
Назови у нас хоть один компонент для работы с файлами больше 4Гб
IC

--- Добавлено в 2017-08-13 23:08:46

andrestudio, за что же тебя так ?

Редактировалось 1 раз(а), последний 2017-08-13 23:08:46
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26061
Рейтинг: 2120
#15: 2017-08-13 23:46:46 ЛС | профиль | цитата
Tad писал(а):
IC

Я не считаю это доступным компонентом для каждого пользователя, и ты это прекрасно знаешь.
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)