То ли осень на меня так действует, то ли ещё чего, но всю эту неделю боролся с тотальной ленью и писал мало кода, а работу над 5.2 нормально возобновил только вчера. Бог даст - завтра закончу часть по коду и можно будет уже пощупать потоки в действии.
|
Закончил работу на версией 5.2. Скоро обновлю документацию.
Сделал небольшой видео обзор: http://www.youtube.com/watch?v=K2GAANmWTgQ Demo: http://jsfiddle.net/kobezzza/hut2jhL9/ |
Провёл стресс тестирование:
100 000 потоков ни одного лага 1 000 000 потоков начинает глючить уже :) |
чёта у меня демка не запустилась. но потоки меня убедили. заюзаю твою либу :)
|
Цитата:
chrome://flags/#enable-javascript-harmony и перезапустить браузер Тестил работу в ФФ, хроме и ноде. Ноду запускать с флагом --harmony |
kobezzza,
можно пару слов о том, как потоки внутри устроены? Я просто не представляю как их возможно сделать без setInterval/setTimeout. //в код не иду, т.к. всё равно мало что пойму) |
Цитата:
Есть планировщик потоков и он на каждой итерации событийного цикла выбирает из очереди потоков те, которые выполнятся в рамках текущей итерации, причём общее время всех операций должно быть не более 60мс. Логично, что чем выше приоритет, тем выше шанс что поток попадёт на исполнение и его максимальное время исполнения. Само разбиение операции использует yield, т.е. после каждой итерации Collection считается затраченое время и если оно больше дозволенного, то операция прерывается (yield). Если очередь потоков не пуста, то раз в заданный момент времени (по setTimeout) планировщик опять выбирает потоки для запуска и выполняет. https://github.com/kobezzza/Collecti...rEach.es6#L688 |
kobezzza,
спасибо за пояснение) *ушёл делать конкурента Коллекшену *злобно смеётся* * |
Цитата:
|
Проверил работу в Safari на маке... чёртовы слоупоки всё ещё не поддерживают генераторы :( Остаётся надежда, что в обещаном релизе Safari 8 они введут поддержку.
Вообще Safari сейчас самый отсталый браузер по поддержки фич и скорости работы. Также не могу найти нормальный ресурс, где пишут о новых фичах / планах новых версий Safari для разработчика, а не для простого пользователя, а то складывается впечатление, что в кроме новой панели вкладок в Safari 8 ничего и нет :) |
Часовой пояс GMT +3, время: 14:27. |