diff options
author | Samy Pesse <samypesse@gmail.com> | 2016-04-30 14:37:44 +0200 |
---|---|---|
committer | Samy Pesse <samypesse@gmail.com> | 2016-04-30 14:37:44 +0200 |
commit | 30bce5f9bb1f8ceee867770386fa6f7fdffd27ee (patch) | |
tree | 8470737d295aa6c4c7f861b1553d50bce34a9936 /lib/parse | |
parent | fbe028273828bc8518e92e87fcbd2a6718dc91e2 (diff) | |
download | gitbook-30bce5f9bb1f8ceee867770386fa6f7fdffd27ee.zip gitbook-30bce5f9bb1f8ceee867770386fa6f7fdffd27ee.tar.gz gitbook-30bce5f9bb1f8ceee867770386fa6f7fdffd27ee.tar.bz2 |
Add option "--timing" to mesure gitbook performances
Diffstat (limited to 'lib/parse')
-rw-r--r-- | lib/parse/listAssets.js | 26 | ||||
-rw-r--r-- | lib/parse/parseBook.js | 8 | ||||
-rw-r--r-- | lib/parse/parsePagesList.js | 46 |
3 files changed, 46 insertions, 34 deletions
diff --git a/lib/parse/listAssets.js b/lib/parse/listAssets.js index a0dbbc9..c43b054 100644 --- a/lib/parse/listAssets.js +++ b/lib/parse/listAssets.js @@ -1,3 +1,4 @@ +var timing = require('../utils/timing'); /** List all assets in a book @@ -16,17 +17,20 @@ function listAssets(book, pages) { var glossary = book.getGlossary(); var glossaryFile = glossary.getFile().getPath(); - return fs.listAllFiles() - .then(function(files) { - return files.filterNot(function(file) { - return ( - book.isContentFileIgnored(file) || - pages.has(file) || - file !== summaryFile || - file !== glossaryFile - ); - }); - }); + return timing.measure( + 'parse.listAssets', + fs.listAllFiles() + .then(function(files) { + return files.filterNot(function(file) { + return ( + book.isContentFileIgnored(file) || + pages.has(file) || + file !== summaryFile || + file !== glossaryFile + ); + }); + }) + ); } module.exports = listAssets; diff --git a/lib/parse/parseBook.js b/lib/parse/parseBook.js index 69cd66e..84a4038 100644 --- a/lib/parse/parseBook.js +++ b/lib/parse/parseBook.js @@ -1,4 +1,5 @@ var Promise = require('../utils/promise'); +var timing = require('../utils/timing'); var Book = require('../models/book'); var parseIgnore = require('./parseIgnore'); @@ -57,7 +58,9 @@ function parseMultilingualBook(book) { @return {Promise<Book>} */ function parseBook(book) { - return Promise(book) + return timing.measure( + 'parse.book', + Promise(book) .then(parseIgnore) .then(parseConfig) .then(parseLanguages) @@ -67,7 +70,8 @@ function parseBook(book) { } else { return parseBookContent(resultBook); } - }); + }) + ); } module.exports = parseBook; diff --git a/lib/parse/parsePagesList.js b/lib/parse/parsePagesList.js index e356e88..a3a52f8 100644 --- a/lib/parse/parsePagesList.js +++ b/lib/parse/parsePagesList.js @@ -1,5 +1,6 @@ var Immutable = require('immutable'); +var timing = require('../utils/timing'); var Page = require('../models/page'); var walkSummary = require('./walkSummary'); @@ -14,27 +15,30 @@ function parsePagesList(book) { var summary = book.getSummary(); var map = Immutable.OrderedMap(); - return walkSummary(summary, function(article) { - if (!article.isPage()) return; - - var filepath = article.getPath(); - - // Is the page ignored? - if (book.isContentFileIgnored(filepath)) return; - - return fs.statFile(filepath) - .then(function(file) { - map = map.set( - filepath, - Page.createForFile(file) - ); - }, function() { - // file doesn't exist - }); - }) - .then(function() { - return map; - }); + return timing.measure( + 'parse.listPages', + walkSummary(summary, function(article) { + if (!article.isPage()) return; + + var filepath = article.getPath(); + + // Is the page ignored? + if (book.isContentFileIgnored(filepath)) return; + + return fs.statFile(filepath) + .then(function(file) { + map = map.set( + filepath, + Page.createForFile(file) + ); + }, function() { + // file doesn't exist + }); + }) + .then(function() { + return map; + }) + ); } |