Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Серверный JavaScript (node.js, ringo, nitro, sling) Новый топик    Ответить
 Почему программа завершает выполнение?  [new]
nikotin77
Member

Откуда:
Сообщений: 1
Всем привет!
Всю голову уже себе сломал, может кто подскажет. Есть следующий код, передающий суть проблемы:

var body = "";
for(var i=0; i<=5000; i++) {
  body += "if(str==='value" + i + "') 1==1;\n";
}
body += "return str;";

var f1 = new Function("str", body);
var f2 = new Function("str", body);

console.log(f1('test1'));
console.log(f2('test2'));

// main loop
for(var i=0; i<100000; i++) {
  f1("string");
  f2("string");
  console.log(i);
}
console.log("fin!");


Мой результат работы программы:

test1
test2
1
2
3
.
.
~1971


Почему цикл main loop не отрабатывает до конца и программа завершает работу (при этом никакой информации об ошибках не выводится)? Запускать в nodejs.

Пожалуйста, не пишите комментарии относительно функциональности кода, проблема не в этом. Цель- выполнить в цикле две функции f1 и f2 100000 раз. У меня этот цикл прерывается на примерно 2000 итерации (плюс-минус). Почему прерывается - вот в чем вопрос первый вопрос и как этого избежать - второй. При этом интересная особенность- одна функция в цикле исполняется исправно 100000 раз. Я пробовал запускать этот код на разных машинах, результат примерно одинаковый.
8 дек 15, 09:51    [18527692]     Ответить | Цитировать Сообщить модератору
 Re: Почему программа завершает выполнение?  [new]
Сэм Винчестер
Guest
nikotin77,

Забивается память, такому говнокоду место на помойке, непонятна реально решаемая задача
9 дек 15, 23:18    [18537980]     Ответить | Цитировать Сообщить модератору
Все форумы / Серверный JavaScript (node.js, ringo, nitro, sling) Ответить