
27.04.2013, 11:51
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Node.js прикалывается?
Суть проблемы:
setTimeout(function work(){
var time = +new Date();
for (var i=0;i<10000000;i++){}
time = +new Date() - time;
console.log(time+'ms',(time/40)+'%'); // /40 т.к. 4 ядра
setTimeout(work,1000);
},1000);
Запускаю и вижу:
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
16ms 0.4%
40ms 1%
40ms 1%
40ms 1%
40ms 1%
40ms 1%
...
C чем связано увеличение времени исполнения после 10ой секунды? Знает кто? И куда можно обратиться?
Причем частота запросов не играет роли. Что через секунду что каждые 2-3 секунды. После 10 раза идет повышение времени в 4 раза.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Последний раз редактировалось PeaceCoder, 27.04.2013 в 12:00.
|
|

27.04.2013, 12:14
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Таймаут чуть чуть не так работает в ноде относительно процесса, как на клиенте привыкли. Сборщика мусора время занимает.
Последний раз редактировалось dmitriymar, 27.04.2013 в 13:59.
|
|

27.04.2013, 14:00
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Используй Date.now()
__________________
.ня
|
|

28.04.2013, 05:17
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от dmitriymar
|
Сборщика мусора время занимает.
|
О каком сборщике может идти речь, когда выделено всего 10 переменных. И во вторых. Сборщик срабатывает не так быстро.
Сообщение от tenshi
|
Используй Date.now()
|
Да. Все корректно заработало.
Хм. Знаю что это аналог new Date().getTime() но какая разница между +new Date()
Цитата:
|
15.9.3.3 new Date()
Свойство [[Prototype]] создаваемого объекта устанавливается равным первоначальному объекту-прототипу Date, т.е. тому, который представляет собой первоначальное значение Date.prototype (см. раздел 15.9.4.1).
Свойство [[Class]] создаваемого объекта устанавливается в "Date".
Значение свойства [[Value]] создаваемого объекта устанавливается равным текущему времени (по UTC).
|
в чем разница?
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Последний раз редактировалось PeaceCoder, 28.04.2013 в 05:27.
|
|

28.04.2013, 09:33
|
х.з
|
|
Регистрация: 21.11.2010
Сообщений: 4,588
|
|
Сообщение от PeaceCoder
|
О каком сборщике может идти речь, когда выделено всего 10 переменных. И во вторых. Сборщик срабатывает не так быстро.
|
да уж, а у функций экземпляры всякий раз не создаются? не ?
Последний раз редактировалось dmitriymar, 28.04.2013 в 09:52.
|
|

28.04.2013, 18:54
|
Профессор
|
|
Регистрация: 20.03.2008
Сообщений: 1,183
|
|
Переменные не выделяются, они существуют всегда вместе с функцией. А вот объекты постоянно создаются и удаляются сборщиком мусора.
__________________
.ня
|
|

01.05.2013, 19:53
|
 |
Профессор
|
|
Регистрация: 15.12.2009
Сообщений: 742
|
|
Сообщение от tenshi
|
А вот объекты постоянно создаются и удаляются сборщиком мусора.
|
Точно. Но все же. Date.now() я так понял дает сразу значение. new Date().getTime() тоже самое но тут проскакивает создание обьекта.
Подставив второй вариант время тоже самое что и первый.
Глючность только с +new Date(). Почему? это баг или не пойму. Может кто сталкивался...
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
|
|

02.05.2013, 15:54
|
Новичок на форуме
|
|
Регистрация: 02.05.2013
Сообщений: 3
|
|
Мерси за полезный опыт
|
|
|
|