Skip to content
This repository has been archived by the owner on Nov 22, 2021. It is now read-only.

Commit

Permalink
Merge pull request #21 from nin-jin/main
Browse files Browse the repository at this point in the history
Added felt-pen & More accurate benchmarking
  • Loading branch information
ai committed Sep 26, 2021
2 parents bcdc0bd + 3e38814 commit 174d64f
Show file tree
Hide file tree
Showing 5 changed files with 34 additions and 14 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"eslint-plugin-promise": "^5.1.0",
"eslint-plugin-security": "^1.4.0",
"eslint-plugin-unicorn": "^36.0.0",
"felt-pen": "^1.0.0",
"jest": "^27.2.2",
"kleur": "^4.1.4",
"lint-staged": "^11.1.2",
Expand Down
21 changes: 14 additions & 7 deletions test/complex-benchmark.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import * as kleurColors from 'kleur/colors'
import chalk from 'chalk'
import ansi from 'ansi-colors'
import cliColor from 'cli-color'
import * as pen from 'felt-pen'

import * as nanocolors from '../index.js'

Expand All @@ -17,36 +18,42 @@ function formatNumber(number) {
}

let suite = new benchmark.Suite()
let out // eslint-disable-line no-unused-vars
let index = 1e8

suite
.add('chalk', () => {
chalk.red(chalk.green('green') + ' red ' + chalk.bold(100000))
chalk.red(chalk.green('green') + ' red ' + chalk.bold(++index))
})
.add('cli-color', () => {
cliColor.red(cliColor.green('green') + ' red ' + cliColor.bold(100000))
cliColor.red(cliColor.green('green') + ' red ' + cliColor.bold(++index))
})
.add('ansi-colors', () => {
ansi.red(ansi.green('green') + ' red ' + ansi.bold(100000))
ansi.red(ansi.green('green') + ' red ' + ansi.bold(++index))
})
.add('kleur', () => {
kleur.red(kleur.green('green') + ' red ' + kleur.bold(100000))
kleur.red(kleur.green('green') + ' red ' + kleur.bold(++index))
})
.add('kleur/colors', () => {
kleurColors.red(
kleurColors.green('green') + ' red ' + kleurColors.bold(100000)
kleurColors.green('green') + ' red ' + kleurColors.bold(++index)
)
})
.add('colorette', () => {
colorette.red(colorette.green('green') + ' red ' + colorette.bold(100000))
colorette.red(colorette.green('green') + ' red ' + colorette.bold(++index))
})
.add('felt-pen', () => {
pen.red(pen.green('green') + ' red ' + pen.bold(++index))
})
.add('nanocolors', () => {
nanocolors.red(
nanocolors.green('green') + ' red ' + nanocolors.bold(100000)
nanocolors.green('green') + ' red ' + nanocolors.bold(++index)
)
})
.on('cycle', event => {
let name = event.target.name.padEnd('kleur/colors '.length)
let hz = formatNumber(event.target.hz.toFixed(0)).padStart(10)
process.stdout.write(`${name}${nanocolors.bold(hz)} ops/sec\n`)
index = 1e8
})
.run()
20 changes: 13 additions & 7 deletions test/simple-benchmark.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import * as kleurColors from 'kleur/colors'
import chalk from 'chalk'
import ansi from 'ansi-colors'
import cliColor from 'cli-color'
import * as pen from 'felt-pen'

import * as nanocolors from '../index.js'

Expand All @@ -18,27 +19,32 @@ function formatNumber(number) {

let suite = new benchmark.Suite()

let out // eslint-disable-line no-unused-vars

suite
.add('chalk', () => {
chalk.red(chalk.bold('bold') + ' red')
out = chalk.red(chalk.bold('bold') + ' red')
})
.add('cli-color', () => {
cliColor.red(cliColor.bold('bold') + ' red')
out = cliColor.red(cliColor.bold('bold') + ' red')
})
.add('ansi-colors', () => {
ansi.red(ansi.bold('bold') + ' red')
out = ansi.red(ansi.bold('bold') + ' red')
})
.add('kleur', () => {
kleur.red(kleur.bold('bold') + ' red')
out = kleur.red(kleur.bold('bold') + ' red')
})
.add('kleur/colors', () => {
kleurColors.red(kleurColors.bold('bold') + ' red')
out = kleurColors.red(kleurColors.bold('bold') + ' red')
})
.add('colorette', () => {
colorette.red(colorette.bold('bold') + ' red')
out = colorette.red(colorette.bold('bold') + ' red')
})
.add('felt-pen', () => {
out = pen.red(pen.bold('bold') + ' red')
})
.add('nanocolors', () => {
nanocolors.red(nanocolors.bold('bold') + ' red')
out = nanocolors.red(nanocolors.bold('bold') + ' red')
})
.on('cycle', event => {
let name = event.target.name.padEnd('kleur/colors '.length)
Expand Down
1 change: 1 addition & 0 deletions test/size.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ async function start() {
await benchmark('ansi-colors')
await benchmark('kleur')
await benchmark('colorette')
await benchmark('felt-pen')
await benchmark('nanocolors')
}

Expand Down
5 changes: 5 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -2911,6 +2911,11 @@ fb-watchman@^2.0.0:
dependencies:
bser "2.1.1"

felt-pen@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/felt-pen/-/felt-pen-1.0.0.tgz#1072b3ef43dc22a263d57e91bb3f9a08fd9f0e65"
integrity sha512-Os8m3lHvWIW6QMu380XTOBeHjgfzxtC3edlPPMXfeDc8YJl1ljqWzlbHyA6h9fDkkoSMz0x5Kjb8YbLwEspX7A==

figgy-pudding@^3.5.1:
version "3.5.2"
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e"
Expand Down

0 comments on commit 174d64f

Please sign in to comment.