Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.07.2016, 00:16
Новичок на форуме
Отправить личное сообщение для jorjsmile Посмотреть профиль Найти все сообщения от jorjsmile
 
Регистрация: 23.07.2016
Сообщений: 2

stream.Transform.push скорость
#nodejs #gulp #plugin.
Сссти ) Не часто пишу на javascript-e.
Задачу реализовал, но скорость не нравится.
Вопрос уперся в stream.Transform.push . Код


var fs = require("fs"),
    through2 = require("through2"),
    Transform = require("stream").Transform,
    vinyl = require("vinyl"),
    async = require("async");

.
.
.
resolveDependant = function(file, stream, cb){

         /**
         * @var array tree - list of files[], aka driectory tree
         */
        var reg = new RegExp("Catch me!", "gm"),            
            seriesList = []; //for threading

        for(var f in tree){

            seriesList.push( //игнорим
                function(file){ //игнорим
                    return function(callback){ //игнорим
                        fs.readFile(file, { encoding : "utf8" }, function(err, data){ //игнорим
                            if(reg.exec(data)){ //trying to catch him!
                                stream.push( //ТУТ теряется время! На 4 файла 1.6с.
                                    new vinyl({  //без предыдущей строчки: 0.4с для 4 файлов
                                        path : file,
                                        contents :
                                            new Buffer(data)
                                    })
                                );
                            }
                            callback();
                        });
                    }
                }(tree[f])
            );
        } 

.
.
.
       this.chain = function() { //gulp.pipe(obj.chain()) call
        return through2.obj(function (file, enconding, cb) {
         /**
         * @var array tree - list of files[], aka driectory tree
         */
            if(!tree.length) //just ensure that chain was called after initialization
                return cb(null, file);

            var stream = this;

            resolveDependant(file.path, stream, function(){
                stream.push(file); //test mode ignore any input 
                cb(); //return control to pipe
            });
        });
    }


Поясните почему тут так печально
stream.push( //ТУТ теряется время на 4 файла 1.6с.

Ссылка, книги, советы - всему буду раз
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скорость объекта при движении к координатам slava1992 Events/DOM/Window 2 04.10.2014 20:26
изменить скорость перемещения ч-л по экрану RIMs Общие вопросы Javascript 2 01.02.2012 19:38
скорость scroll-a igrok Элементы интерфейса 1 10.02.2011 15:18
Скорость выполнения кода mycoding Общие вопросы Javascript 6 23.04.2010 13:28
Скорость движения мыши Данил Элементы интерфейса 12 30.01.2010 21:57