diff --git a/benchmark-tests/benchmark.json b/benchmark-tests/benchmark.json deleted file mode 100644 index 7d8e2223..00000000 --- a/benchmark-tests/benchmark.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "evalConfig": { - "tolerance": { - "*": [0.75, 1.5], - "*.dev": [0.01, 1.5], - "*.cv": [0.01, 1.5], - "EscapeSequenceParser.benchmark.js.*.averageThroughput.mean": [0.9, 5] - }, - "skip": [ - "*.median", - "*.runs", - "*.dev", - "*.cv", - "EscapeSequenceParser.benchmark.js.*.averageRuntime", - "Terminal.benchmark.js.*.averageRuntime" - ] - } -} diff --git a/benchmark-tests/tsconfig.json b/benchmark-tests/tsconfig.json deleted file mode 100644 index 9012ee4d..00000000 --- a/benchmark-tests/tsconfig.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "compilerOptions": { - "lib": [ - "dom", - "es6", - ], - "rootDir": ".", - "outDir": "../benchmark", - "types": [ - "../node_modules/@types/node" - ], - "sourceMap": true, - "removeComments": true, - "pretty": true, - "strict": true, - "baseUrl": ".", - "paths": { - "common/*": [ "./../out/common/*" ], - "browser/*": [ "./../out/browser/*" ] - } - }, - "include": [ - "./**/*", - "../typings/xterm.d.ts" - ], -} diff --git a/bin/benchmark.js b/bin/benchmark.js deleted file mode 100644 index 077febe4..00000000 --- a/bin/benchmark.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright (c) 2019 The xterm.js authors. All rights reserved. - * @license MIT - */ - -const cp = require('child_process'); -const path = require('path'); -const glob = require('glob'); - -// Add `out` to the NODE_PATH so absolute paths can be resolved. -const env = { ...process.env }; -env.NODE_PATH = path.resolve(__dirname, '../out'); - -/** - * Default commands for yarn: - * yarn benchmark single single run of all benchmarks without statistics - * yarn benchmark baseline 10 runs of all benchmarks with baseline statistics - * yarn benchmark eval 10 runs of all benchmarks with eval against last baseline - */ -const commands = { - single : '-r 5 -c ./benchmark-tests/benchmark.json', - baseline: '--baseline -r 5 -c ./benchmark-tests/benchmark.json', - eval : '--eval -r 5 -c ./benchmark-tests/benchmark.json' -} - -let testFiles = [ - './benchmark/*benchmark.js' -]; - -// allow overriding cmdline args (see yarn benchmark --help) -if (process.argv.length === 3 && process.argv[2] in commands) { - testFiles.push(commands[process.argv[2]]); -} else if (process.argv.length > 2) { - testFiles = process.argv.slice(2); -} else if (process.argv.length === 2) { - testFiles.push(commands['single']); -} - -cp.spawnSync( - path.resolve(__dirname, '../node_modules/.bin/xterm-benchmark'), - testFiles.reduce((accu, cur) => { - const expanded = glob.sync(cur); - if (!expanded.length) { - accu.push(cur); - return accu; - } - return accu.concat(expanded); - }, []), - { - cwd: path.resolve(__dirname, '..'), - env, - stdio: 'inherit', - shell: true - } -); diff --git a/package.json b/package.json index 6b14d216..52fd7001 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,9 @@ "prepublishOnly": "npm run package", "watch": "tsc -b -w ./tsconfig.all.json --preserveWatchOutput", "clean": "rm -rf lib out addons/*/lib", - "benchmark": "node ./bin/benchmark.js" + "benchmark": "NODE_PATH=./out xterm-benchmark -r 5 -c benchmark.json", + "benchmark-baseline": "NODE_PATH=./out xterm-benchmark -r 5 -c benchmark.json --baseline out/benchmark-tests/*benchmark.js", + "benchmark-eval": "NODE_PATH=./out xterm-benchmark -r 5 -c benchmark.json --eval out/benchmark-tests/*benchmark.js" }, "devDependencies": { "@types/chai": "^3.4.34", diff --git a/src/benchmark-tests/EscapeSequenceParser.benchmark.d.ts b/src/benchmark-tests/EscapeSequenceParser.benchmark.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/src/benchmark-tests/EscapeSequenceParser.benchmark.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/benchmark-tests/EscapeSequenceParser.benchmark.ts b/src/benchmark-tests/EscapeSequenceParser.benchmark.ts similarity index 97% rename from benchmark-tests/EscapeSequenceParser.benchmark.ts rename to src/benchmark-tests/EscapeSequenceParser.benchmark.ts index d64f5812..57f8329c 100644 --- a/benchmark-tests/EscapeSequenceParser.benchmark.ts +++ b/src/benchmark-tests/EscapeSequenceParser.benchmark.ts @@ -4,9 +4,9 @@ */ import { perfContext, before, beforeEach, ThroughputRuntimeCase } from 'xterm-benchmark'; -import { EscapeSequenceParser } from '../out/common/parser/EscapeSequenceParser'; -import { C0, C1 } from '../out/common/data/EscapeSequences'; -import { IDcsHandler } from '../out/common/parser/Types'; +import { EscapeSequenceParser } from 'common/parser/EscapeSequenceParser'; +import { C0, C1 } from 'common/data/EscapeSequences'; +import { IDcsHandler } from 'common/parser/Types'; function toUtf32(s: string): Uint32Array { diff --git a/src/benchmark-tests/Terminal.benchmark.d.ts b/src/benchmark-tests/Terminal.benchmark.d.ts new file mode 100644 index 00000000..cb0ff5c3 --- /dev/null +++ b/src/benchmark-tests/Terminal.benchmark.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/benchmark-tests/Terminal.benchmark.ts b/src/benchmark-tests/Terminal.benchmark.ts similarity index 92% rename from benchmark-tests/Terminal.benchmark.ts rename to src/benchmark-tests/Terminal.benchmark.ts index 9e5e10bc..a9e5bca7 100644 --- a/benchmark-tests/Terminal.benchmark.ts +++ b/src/benchmark-tests/Terminal.benchmark.ts @@ -6,14 +6,10 @@ import { perfContext, before, ThroughputRuntimeCase } from 'xterm-benchmark'; import { spawn } from 'node-pty'; -import { Utf8ToUtf32, stringFromCodePoint } from '../out/common/input/TextDecoder'; - -const Terminal: any = require('../out/Terminal').Terminal; +import { Utf8ToUtf32, stringFromCodePoint } from 'common/input/TextDecoder'; +import { Terminal } from 'Terminal'; class TestTerminal extends Terminal { - constructor(opts: any) { - super(opts); - } writeSync(data: string): void { this.writeBuffer.push(data); (this as any)._innerWrite(); diff --git a/src/benchmark-tests/tsconfig.json b/src/benchmark-tests/tsconfig.json new file mode 100644 index 00000000..2c59a500 --- /dev/null +++ b/src/benchmark-tests/tsconfig.json @@ -0,0 +1,23 @@ +{ + "extends": "../tsconfig-library-base", + "compilerOptions": { + "lib": [ + "dom", + "es6", + ], + "outDir": "../../out", + "types": [ + "../../node_modules/@types/node" + ], + "baseUrl": "..", + "strict": false + }, + "include": [ + "./**/*", + "../**/*", + "../../typings/xterm.d.ts" + ], + "exclude": [ + "../**/*test.ts" + ] +} diff --git a/tsconfig.all.json b/tsconfig.all.json index d8d8d20b..6985b64d 100644 --- a/tsconfig.all.json +++ b/tsconfig.all.json @@ -8,8 +8,6 @@ { "path": "./addons/xterm-addon-fit/src" }, { "path": "./addons/xterm-addon-search/src" }, { "path": "./addons/xterm-addon-web-links/src" }, - - // currently depends on out, thus must run as last? - { "path": "./benchmark-tests" }, + { "path": "./src/benchmark-tests" }, ] }