Skip to content

Commit f467b5c

Browse files
committed
Add logging for worker performance
1 parent c199f64 commit f467b5c

File tree

4 files changed

+15
-4
lines changed

4 files changed

+15
-4
lines changed

example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
"unit-test": "",
2626
"build": "webdoc --tutorials ./tutorials --site-root example-documentation --site-domain https://webdoc-labs.github.io --verbose",
2727
"build-next": "cd .. && webdoc && cd example",
28-
"build-pixi-api": "cd ../../pixi-api && webdoc && cd ../webdoc/example",
28+
"build-pixi-api": "cd ../../pixi-api && webdoc --verbose && cd ../webdoc/example",
2929
"build-pixi-api-prod": "cd ../../pixi-api && webdoc --site-root pixi-api && cd ../webdoc/example",
3030
"build-pixi-api-gcp": "cd ../../pixi-api && webdoc --tutorials ./projects/guides --verbose && cd ../webdoc/example",
3131
"build-pixi-guides": "cd ../../guides && webdoc --tutorials docs && cd ../webdoc/example",

packages/webdoc-parser/src/Logger.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export function initLogger(defaultLevel: string = "INFO") {
3535
PartialParser: defaultLevel,
3636
DocParser: defaultLevel,
3737
DocumentTreeModifier: defaultLevel,
38+
Indexer: defaultLevel,
3839
},
3940
(level, tag, msg, params) => {
4041
let tagPrefix = `[${tag}]:`;

packages/webdoc-parser/src/indexer/IndexerWorkerPool.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// @flow
22

3+
import {parserLogger, tag} from "../Logger";
34
import EventEmitter from "events";
45
import type {LanguageConfig} from "../types/LanguageIntegration";
56
import {type SourceFile} from "@webdoc/types";
@@ -67,10 +68,12 @@ export class IndexerWorkerPool {
6768
ptr: number = 0;
6869

6970
constructor(limit?: number) {
70-
const workerPoolSize = Math.min(os.cpus().length, limit || Infinity);
71+
const workerPoolSize = Math.min(os.cpus().length, limit || 4);
7172
const workers = new Array<Worker>(workerPoolSize);
7273
const workerPath = path.resolve(__dirname, "./worker.js");
7374

75+
parserLogger.info(tag.Indexer, "Using " + workerPoolSize + " worker threads for indexing");
76+
7477
for (let i = 0; i < workerPoolSize; i++) {
7578
workers[i] = new IndexerWorker(new Worker(workerPath));
7679
}

packages/webdoc-parser/src/indexer/index.js

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
// @flow
22

33
import type {LanguageConfig, LanguageIntegration} from "../types/LanguageIntegration";
4+
import {parserLogger, tag} from "../Logger";
45
import {IndexerWorkerPool} from "./IndexerWorkerPool";
56
import {type SourceFile} from "@webdoc/types";
67
import {type Symbol} from "../types/Symbol";
7-
import {parserLogger} from "../Logger";
88
import path from "path";
99

1010
declare var globalThis: any;
@@ -26,9 +26,12 @@ export function register(lang: LanguageIntegration): void {
2626
}
2727

2828
export async function run(files: SourceFile[], config: LanguageConfig): Promise<Symbol[]> {
29+
const startTime = Date.now();
2930
const symbolTrees: Array<Symbol> = new Array(files.length);
3031
const symbolIndexingOperations: Array<Promise<void>> = new Array(files.length);
31-
const workerPool = new IndexerWorkerPool();
32+
const workerPool = new IndexerWorkerPool(Math.floor(files.length / 125));
33+
34+
parserLogger.info(tag.Indexer, "Indexing " + files.length + " files");
3235

3336
for (let i = 0; i < files.length; i++) {
3437
const fileName = files[i].path;
@@ -55,6 +58,10 @@ export async function run(files: SourceFile[], config: LanguageConfig): Promise<
5558

5659
workerPool.destroy();
5760

61+
const endTime = Date.now();
62+
63+
parserLogger.info(tag.Indexer, "Indexing took " + (endTime - startTime) + "ms");
64+
5865
return symbolTrees;
5966
}
6067

0 commit comments

Comments
 (0)