Вверх ↑
Этот топик читают: Гость
Ответов: 96
Рейтинг: 1
#1: 2010-12-08 09:24:26 ЛС | профиль | цитата
Добрый день, помогите разобраться с программой.
В данном виде програма по истечению 3-х часов вылетает и появляется сообщение типа выход из памяти. Подскажите как с этим бороться.


Add(MultiElementEx,15841743,755,205)
{
@Hint=#62:Блок производит побитное перемножение двух последовательностей|
link(onResult,2093802:doCompare,[])
AddHint(120,-136,155,39,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,10171738,21,21)
{
WorkCount=#29:doWork1= Строка для обработки|42:doFor=Запуск цикла математической операции|
EventCount=#27:onResult=Результат операции|28:onStop=Конец перебора строки|8:onEvent2|
VarCount=#21:Var1=Количество строк|6:Result|
Width=832
Height=641
link(doWork1,16287771:doValue,[(87,27)(87,69)])
link(doFor,3208193:doWork1,[(249,34)(249,118)])
link(Var1,9679639:Var1,[(27,341)(426,341)])
link(Result,4811718:Result,[(34,620)(454,620)])
}
Add(CharArray,5602197,210,308)
{
@Hint=#6:строка|
link(onLoad,10855928:doLoad,[])
link(String,16287771:Value,[(216,202)(160,202)])
AddHint(-75,-40,50,13,@Hint)
}
Add(CharArray,10855928,329,308)
{
@Hint=#14:двойная строка|
link(onLoad,16610885:doLength,[])
link(String,3208193:Var2,[(335,226)(489,226)])
AddHint(13,-43,95,13,@Hint)
}
Add(ArrayEnum,9286296,210,378)
{
link(onItem,9002011:doOperation,[])
link(onEndEnum,7147012:doOperation,[(266,391)(266,552)])
link(Array,5602197:Array,[])
}
Add(ArrayRW,10935616,329,378)
{
link(onRead,3110686:In,[])
link(Array,10855928:Array,[])
link(Index,9002011:Result,[(342,366)(310,366)(310,422)(279,422)])
}
Add(Math,9002011,273,378)
{
link(onResult,10935616:doRead,[])
link(Op1,9286296:Index,[(279,366)(251,366)(251,422)(223,422)])
link(Op2,9756980:Position,[(286,366)(188,366)(188,421)(136,421)])
}
Add(Length,16610885,388,308)
{
link(onLength,4680120:doEvent1,[])
link(Str,5602197:Str,[(394,298)(267,298)(267,352)(223,352)])
}
Add(LineBreakEx,11725650,420,413)
{
Caption="TestString"
Type=3
link(_Data,9679639:Var2,[])
}
Add(LineBreakEx,367025,399,462)
{
Caption="TestString"
Type=2
}
Add(For,9756980,130,378)
{
Start=1
link(onEvent,5329893:doEvent1,[])
link(onStop,10171738:onStop,[(508,391)(508,34)])
link(End,1804643:Var2,[(143,367)(419,367)])
}
Add(Math,12271312,471,308)
{
OpType=1
ResultType=0
link(onResult,9756980:doFor,[(515,314)(515,349)(118,349)(118,384)])
link(Op1,9679639:Var3,[(477,296)(435,296)(435,352)])
}
Add(Math,15052415,279,450)
{
OpType=6
link(onResult,6391282:doOperation,[])
link(Op1,9286296:Item,[(285,430)(216,430)])
link(Op2,10935616:Item,[(292,430)(335,430)])
}
Add(LineBreak,3195488,238,449)
{
link(Out,15052415:doOperation,[(277,455)(277,456)])
Primary=[3110686,133,-71]
}
Add(LineBreak,15794052,140,308)
{
link(Out,5602197:doLoad,[])
Primary=[12655327,399,-196]
}
Add(Hub,5329893,170,378)
{
link(onEvent1,9286296:doEnum,[])
link(onEvent2,13259424:In,[(200,391)(200,510)])
}
Add(LineBreak,6133818,301,504)
{
link(Out,6391282:doClear,[(341,510)(341,463)])
Primary=[13259424,-84,0]
}
Add(Math,6391282,350,450)
{
ResultType=0
Point(doClear)
link(Op1,6411355:Var1,[(356,438)(344,438)(344,494)])
}
Add(Math,7147012,350,546)
{
OpType=2
Op2=2
Point(doClear)
link(onResult,2551852:doOperation,[])
link(Op1,6411355:Var2,[])
}
Add(Math,2551852,399,546)
{
OpType=1
Point(doClear)
link(onResult,10171738:onResult,[(642,552)(642,27)])
link(Op1,367025:getVar,[])
link(Op2,7147012:Result,[(412,534)(384,534)(384,590)(356,590)])
}
Add(Math,4811718,448,546)
{
OpType=3
Point(doClear)
link(Op1,2551852:Result,[(454,534)(430,534)(430,590)(405,590)])
link(Op2,12496027:getVar,[])
}
Add(GetDataEx,6411355,350,489)
{
link(Data,6391282:Result,[])
}
Add(GetDataEx,9679639,420,347)
{
Angle=3
link(Data,1804643:Var3,[])
}
Add(LineBreakEx,12496027,455,485)
{
Caption="TestString"
Type=2
}
Add(Hub,4680120,441,308)
{
link(onEvent1,12271312:doOperation,[])
link(onEvent2,10171738:onEvent2,[(654,321)(654,41)])
}
Add(MultiElement,3208193,476,112)
{
@Hint=#44:Записывает строку и формирует двойную строку|
link(onEvent1,12655327:In,[])
AddHint(17,-66,185,26,@Hint)
}
BEGIN_SDK
Add(EditMulti,4089528,21,21)
{
EventCount=1
WorkCount=1
VarCount=2
link(doWork1,12911346:doValue,[(39,27)(39,97)])
link(Var1,14450652:Var2,[(27,203)(62,203)])
link(Var2,6291844:Value,[(34,172)(251,172)])
}
Add(Memory,12911346,56,91)
{
link(onData,7447056:doStrCat,[])
}
Add(StrCat,7447056,112,91)
{
link(onStrCat,6291844:doValue,[])
link(Str1,1602444:Var2,[])
link(Str2,1602444:Var3,[(125,79)])
}
Add(GetDataEx,14450652,56,175)
{
link(Data,12911346:Value,[])
}
Add(GetDataEx,1602444,112,74)
{
Angle=3
link(Data,14450652:Var3,[(92,79)(92,180)])
}
Add(Memory,6291844,245,91)
{
link(onData,4089528:onEvent1,[(299,97)(299,27)])
}
END_SDK
Add(Memory,16287771,154,63)
{
}
Add(GetDataEx,1804643,413,347)
{
Angle=3
link(Data,16610885:Result,[(394,352)])
}
END_SDK
Add(Service,2953706,24,149)
{
link(onStart,11895990:doStart,[(66,155)(66,223)])
link(onStop,11895990:doStop,[(66,162)(66,230)])
}
Add(GetDataEx,5381912,613,161)
{
link(Data,9244718:Result,[])
}
Add(Hub,8682092,364,105)
{
InCount=2
OutCount=5
link(onEvent1,6715422:doRandomize,[(481,111)(481,132)])
link(onEvent3,14250407:doEvent1,[])
link(onEvent5,4301393:doRandomize,[(471,139)(471,317)])
}
Add(For,13327416,508,119)
{
@Hint=#24:Длина последовательности|
Start=1
End=32
link(onEvent,6715422:doRandom,[])
link(onStop,15684307:doEvent1,[(546,132)(546,181)])
link(End,8472275:Var2,[])
AddHint(-215,-72,157,13,@Hint)
}
Add(Random,6715422,557,119)
{
Max=1
link(onRandom,9244718:doStrCat,[])
}
Add(StrCat,9244718,613,119)
{
Point(doClear)
link(Str1,5381912:Var1,[(619,107)(610,107)(610,166)])
}
Add(DoData,221029,620,205)
{
PColor(onEventData,16711680)
link(onEventData,4011652:doEvent1,[(658,211)(658,211)])
link(Data,5381912:Var3,[(626,166)])
}
Add(Hub,15684307,571,175)
{
OutCount=3
link(onEvent1,221029:doData,[(606,181)(606,211)])
link(onEvent2,9244718:doClear,[(595,188)(595,132)])
link(onEvent3,7611684:doFor,[(597,195)(597,253)(503,253)(503,310)])
}
Add(Hub,14250407,455,119)
{
link(onEvent1,13327416:doFor,[])
}
Add(For,3845777,217,105)
{
@Hint=#17:Количество опытов|
End=2097151
PColor(onStop,16776960)
link(onEvent,8682092:doEvent1,[])
link(onStop,11521879:doSort,[(346,118)(346,448)])
AddHint(0,64,114,13,@Hint)
}
Add(Memory,4207779,515,31)
{
Default=Real(32)
}
Add(GetDataEx,8472275,515,78)
{
link(Data,4207779:Value,[])
}
Add(Hub,13517545,140,156)
{
link(onEvent1,3845777:doFor,[(168,162)(168,111)])
}
Add(LineBreakEx,2297033,1005,634)
{
Caption="TestString"
Type=2
}
Add(LineBreakEx,14745359,695,117)
{
Caption="TestString"
Type=3
link(_Data,8472275:Var3,[(701,83)])
}
Add(LineBreakEx,7442069,1086,633)
{
Caption="Test"
Type=2
}
Add(GetDataEx,4217340,620,346)
{
link(Data,2178854:Result,[])
}
Add(For,7611684,515,304)
{
@Hint=#24:Длина последовательности|
@Color=43520
link(onEvent,4301393:doRandom,[])
link(onStop,4184729:doEvent1,[(563,317)(563,366)])
link(End,9643682:getVar,[])
AddHint(-212,85,157,13,@Hint)
}
Add(Random,4301393,564,304)
{
@Color=43520
Max=1
link(onRandom,2178854:doStrCat,[])
}
Add(StrCat,2178854,620,304)
{
@Color=43520
Point(doClear)
link(Str1,4217340:Var1,[(626,292)(617,292)(617,351)])
}
Add(DoData,9565718,627,390)
{
@Color=43520
PColor(onEventData,16711680)
link(onEventData,15841743:doFor,[(707,396)(707,218)])
link(Data,4217340:Var3,[(633,351)])
}
Add(Hub,4184729,578,360)
{
@Color=43520
OutCount=3
link(onEvent1,9565718:doData,[(613,366)(613,396)])
link(onEvent2,2178854:doClear,[(602,373)(602,317)])
}
Add(Hub,4011652,675,205)
{
link(onEvent1,15841743:doWork1,[])
}
Add(LineBreakEx,9643682,522,264)
{
Caption="TestString"
Type=2
}
Add(StrList,6290446,987,364)
{
FileName="333.txt"
}
Add(FormatStr,12252793,1120,695)
{
DataCount=3
Mask="%1VKFvkf_%2_%3_.txt"
Point(FString)
link(onFString,6669432:doSave,[(1174,701)(1174,532)])
link(Str1,8393501:CurrentDir,[(1126,679)(958,679)])
link(Str2,2297033:getVar,[(1133,669)(1011,669)])
link(Str3,7442069:getVar,[(1140,662)(1092,662)])
}
Add(Dir,8393501,952,632)
{
}
Add(StrList,6669432,1195,491)
{
}
Add(FormatStr,6215732,1118,491)
{
Mask="%1; %2"
Point(FString)
link(onFString,6669432:doAdd,[])
}
Add(ArrayCountRepeats,11053984,1001,491)
{
ArrayType=2
link(onCount,6215732:doString,[])
link(onEndCount,12252793:doString,[(1077,504)(1077,701)])
link(Array,11521879:ArraySort,[])
}
Add(ArraySort,11521879,1001,442)
{
ArrayType=2
CaseSensitive=0
Point(doCaseSensitive)
link(onEndSort,11053984:doCount,[(1044,448)(1044,481)(989,481)(989,497)])
link(Array,6290446:Array,[])
}
Add(If_else,2093802,819,205)
{
link(onFalse,6290446:doAdd,[(919,218)(919,370)])
link(Op2,9223170:getVar,[(832,195)(832,195)])
}
Add(LineBreakEx,9223170,826,172)
{
Caption="TestString"
Type=2
}
Add(TimeCounter,11895990,77,217)
{
link(onStart,13517545:doEvent1,[(125,223)(125,162)])
link(onStop,10216626:doOperation,[(117,230)(117,237)])
}
Add(Message,7190578,182,231)
{
}
Add(Math,10216626,126,231)
{
OpType=3
Op2=60000
ResultType=0
link(onResult,7190578:doMessage,[])
}
карма: 0

0
Ответов: 8930
Рейтинг: 823
#2: 2010-12-08 11:38:10 ЛС | профиль | цитата
301992, ну да, а если пробовать накопить более длинные слова, памяти хватит на час работы - надо менять алгоритм работы, хотя бы разбивать данные на небольшие части и записывать файлом, а уже потом обрабатывать эти кусочки. (Кстати, применить doRendomize достаточно один раз на одном компоненте Rnd)
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#3: 2010-12-08 19:50:11 ЛС | профиль | цитата
Леонид писал(а):
Кстати, применить doRendomize достаточно один раз
и лишние связи тоже лишние.
code_21728.txt
------------ Дoбавленo в 18.33:
Выложить картинки не получается.
------------ Дoбавленo в 18.49:
s2.png
------------ Дoбавленo в 19.17:
Вторую картинку ну никак.
------------ Дoбавленo в 19.39:
Internet Explorer cannot display the webpage

------------ Дoбавленo в 19.41:

------------ Дoбавленo в 19.50:
Вот отправлялось с 16:00
Одним словом ... нет слов [flood]лучше сдержаться[/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 3code_21728.txt [3.6KB] [71], s2.png [1.4KB] [371], s3.png [1.7KB] [405]
Ответов: 8930
Рейтинг: 823
#4: 2010-12-08 21:58:57 ЛС | профиль | цитата
Tad, [flood]Сдерживаться вредно для здоровья! ведь все (почти) болезни от нервов
Посылайте мне на почту, а я выложу [/flood]
карма: 19

0
Ответов: 96
Рейтинг: 1
#5: 2010-12-11 10:56:26 ЛС | профиль | цитата
вот попробовал сделать, чтобы не вылетала, но хочется увеличить скорость выполнения, но не знаю как. Может с использованием компонентов FTCG, но там не все компоненты.
code_21763.txt
------------ Дoбавленo в 10.56:
Вот получилось http://hiasm.com/forum_serv.php?q=56&id=2006

карма: 0

0
файлы: 1code_21763.txt [138B] [88]
Ответов: 96
Рейтинг: 1
#6: 2010-12-13 16:33:50 ЛС | профиль | цитата
Подскажите, чем заменить встроенную схему массив переменных http://forum.hiasm.com/forum_serv.php?q=56&id=2022
карма: 0

0
Ответов: 8930
Рейтинг: 823
#7: 2010-12-13 17:47:20 ЛС | профиль | цитата
301992, медленно и по русски объяснить, какие входят данные, и что этот контейнер с ними должен делать и что на выходе
карма: 19

0
Ответов: 96
Рейтинг: 1
#8: 2010-12-13 18:27:08 ЛС | профиль | цитата
В этот контейнер входят некоторые значения, а в нем происходит сортировка этих значений (от -128 до 128 с шагом два) и на выходе получаем такую картину например
-128;10
-126;2356321
.
.
.
128;67

т.е. значение -128 появилась 10 раз, -126 - появилось 2356321 раза и так далее.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#9: 2010-12-13 19:12:34 ЛС | профиль | цитата
301992,Заменить одним компонентом

Add(ArrayCountRepeats,13264374,196,140)
{
}
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8930
Рейтинг: 823
#10: 2010-12-13 21:27:30 ЛС | профиль | цитата
Tad, в Array тогда надо записывать все числа, а их у коллеги 301992 миллионы, поэтому программа и "вылетает"
301992, Надо считать эти числа без сохранения их. Приложена схема -- такая, как я понял из Вашего "медленного", но не полного пояснения
карма: 19

0
файлы: 1countnumb.rar [1.2KB] [90]
Ответов: 16884
Рейтинг: 1239
#11: 2010-12-13 22:07:22 ЛС | профиль | цитата
Леонид, угадай 6 из 46 ?
Леонид писал(а):
в Array тогда надо записывать все числа
А блоками по 1000 значений не катит ?
Хотя это должна решать 301992
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#12: 2010-12-13 22:11:10 ЛС | профиль | цитата
[flood]
Tad писал(а):
Хотя это должна решать 301992

А это разве девочка
301992 писал(а):
вот попробовал сделать
[/flood]
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#13: 2010-12-13 22:22:26 ЛС | профиль | цитата
301992 писал(а):
вот попробовал сделать
А кто его знает. Вроде и про женщин мыслей небыло.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 8930
Рейтинг: 823
#14: 2010-12-13 22:37:31 ЛС | профиль | цитата
Tad, [flood]мыслей, конечно не было, но подсознание на верном пути [/flood]
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#15: 2010-12-13 22:49:46 ЛС | профиль | цитата
Леонид, точно. Видно подсознание зафиксировало.
301992.png
------------ Дoбавленo в 22.49:
Судя по позывному - 1992 года рождения = 18 лет
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1301992.png [96.4KB] [174]
Сообщение
...
Прикрепленные файлы
(файлы не залиты)