Path: blob/main/src/vs/base/test/node/uri.perf.test.ts
3296 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import assert from 'assert';6import { readFileSync } from 'fs';7import { FileAccess } from '../../common/network.js';8import { URI } from '../../common/uri.js';9import { ensureNoDisposablesAreLeakedInTestSuite } from '../common/utils.js';1011suite('URI - perf', function () {1213// COMMENT THIS OUT TO RUN TEST14if (1) {15return;16}1718ensureNoDisposablesAreLeakedInTestSuite();1920let manyFileUris: URI[];21setup(function () {22manyFileUris = [];23const data = readFileSync(FileAccess.asFileUri('vs/base/test/node/uri.perf.data.txt').fsPath).toString();24const lines = data.split('\n');25for (const line of lines) {26manyFileUris.push(URI.file(line));27}28});2930function perfTest(name: string, callback: Function) {31test(name, _done => {32const t1 = Date.now();33callback();34const d = Date.now() - t1;35console.log(`${name} took ${d}ms (${(d / manyFileUris.length).toPrecision(3)} ms/uri) (${manyFileUris.length} uris)`);36_done();37});38}3940perfTest('toString', function () {41for (const uri of manyFileUris) {42const data = uri.toString();43assert.ok(data);44}45});4647perfTest('toString(skipEncoding)', function () {48for (const uri of manyFileUris) {49const data = uri.toString(true);50assert.ok(data);51}52});5354perfTest('fsPath', function () {55for (const uri of manyFileUris) {56const data = uri.fsPath;57assert.ok(data);58}59});6061perfTest('toJSON', function () {62for (const uri of manyFileUris) {63const data = uri.toJSON();64assert.ok(data);65}66});6768});697071