npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aoctimer

v3.1.2

Published

AoC TIMER - compare your AoC solutions with others

Downloads

137

Readme

AoC TIMER

What is it?

AoC timer measures your Advent of Code solutions time in relative units, so you can compare your code performance with others, independent of your machine specs.

The timer is not perfect in replicating the same results on different machines, but the results are precise enough to make it a fun tool.

It also provides a score and shows you the level of your optimizations, making performance tweaks more gratifying.

Example output

    +--- AoC 2020 Day 18 - AOC TIMER --------------------+
    |                                                    |
    | Linux (x64) 8GB RAM                                |
    | Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz          |
    |                                                    |
    | Language: TypeScript                               |
    |                                                    |
    | Time: 14ms (next: -5ms)         Points: 256        |
    | Benchmark: 0.289%               Level: ********--  |
    |                                                    |
    +----------------------------------- git.io/JL9Qu ---+

You can add it to your README file or post it in the solution megathread on AoC subreddit.

Installation

Via NPM

It is the recommended way if you have Node.js and NPM already installed (or you are willing to do it).

Requires Node 14LTS or higher.

Global installation:

npm i aoctimer -g

Local installation (as a dev tool for your project):

npm i aoctimer -D

Via a single binary

If you prefer a single binary file (Node.js included), you can download it for the most popular platforms:

After downloading, extract the ZIP file and place the file in your executable directory, or set up a PATH to point to the aoctimer executable.

You can also use it locally, invoking it by pointing to it's location, for example:

~/home/utils/aoctimer

C:\User\me\tools\aoctimer.exe

Preparing your code

AoC TIMER is language independent and relies on a simple protocol - in your code write to the stdout line that contains following info (in order):

  • the word "total"
  • the time as number
  • the unit as one of (optional, ms as default):
    • s (seconds)
    • ms (milliseconds)
    • us (microseconds)
    • ns (nanoseconds)

Additional characters and spaces are allowed, the program is not case-sensitive.

Examples:

total 12.01ms

Total: 100 ns

TOTAL TIME - 5s

Total 12345

My solution has total time of 123.100 us.

Example (JS):

import { read } from "../../utils/index"

const part1 = (input) => {
  // solution...
  return result
}

const part2 = (input) => {
  // solution...
  return result
}

const input = read()

const t0 = process.hrtime.bigint()
const result1 = part1(input)
const result2 = part2(input)
const t1 = process.hrtime.bigint()

const total = Number(t1 - t0) / 1e6

console.log("Solution to part 1:", result1)
console.log("Solution to part 2:", result2)

console.log(`Total time: ${total}ms`) // <- Line for AoC timer to parse

Usage

In your project folder run:

aoctimer init

It will create the local config and execute the benchmark.

Execute your code (if you skip the day flag, it will try to autocomplete the day by scanning your command):

aoctimer --day <day_number> <your_command>

aoctimer -d <day_number> <your_command>

aoctimer <your_command>

# Examples:

  aoctimer node day01/index.js

  aoctimer python day5.py

  aoctimer day25.exe

  aoctimer go run aoc/day01/solution.go

  aoctimer -d 13 java my_solution

  aoctimer --day 15 lua solution.lua

Show the summary:

aoctimer summary

You can save the output of the commands to the file, using standard command-line piping (Bash / zsh / fish / PowerShell):

aoctimer summary > MY_FILE.txt

CLI

Commands:
  init [language] [year]        Calibrate and create local config
  summary                       Display the summary
  [-d, --day <day>] <command>   Run the timer for your command
  --help, -h                    Show help page
  --version, -v                 Show version

Example summaries for two very different machines running the same code

+--- AoC 2020 - AOC TIMER ---------------------------+--- AoC 2020 - AOC TIMER ---------------------------+
|                                                    |                                                    |
| Linux (x64) 8GB RAM                                | Linux (x64) 1GB RAM                                |
| Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz          | Intel(R) Atom(TM) CPU N450   @ 1.66GHz             |
|                                                    |                                                    |
| Language: TypeScript                               | Language: TypeScript                               |
|                                                    |                                                    |
|--- DAYS -------------------------------------------|--- DAYS -------------------------------------------|
|                                                    |                                                    |
| Day 01                                             | Day 01                                             |
| ------                                             | ------                                             |
| Time: 379ms                     Points: 16         | Time: 3204ms                    Points: 16         |
| Benchmark: 7.812%               Level: ****------  | Benchmark: 9.238%               Level: ****------  |
|                                                    |                                                    |
| Day 02                                             | Day 02                                             |
| ------                                             | ------                                             |
| Time: 7ms                       Points: 512        | Time: 89ms                      Points: 256        |
| Benchmark: 0.145%               Level: *********-  | Benchmark: 0.257%               Level: ********--  |
|                                                    |                                                    |
| Day 03                                             | Day 03                                             |
| ------                                             | ------                                             |
| Time: 2ms                       Points: 1024       | Time: 22ms                      Points: 1024       |
| Benchmark: 0.042%               Level: **********  | Benchmark: 0.064%               Level: **********  |
|                                                    |                                                    |
| Day 04                                             | Day 04                                             |
| ------                                             | ------                                             |
| Time: 15ms                      Points: 256        | Time: 113ms                     Points: 256        |
| Benchmark: 0.31%                Level: ********--  | Benchmark: 0.326%               Level: ********--  |
|                                                    |                                                    |
| Day 05                                             | Day 05                                             |
| ------                                             | ------                                             |
| Time: 3ms                       Points: 1024       | Time: 31ms                      Points: 1024       |
| Benchmark: 0.062%               Level: **********  | Benchmark: 0.09%                Level: **********  |
|                                                    |                                                    |
| Day 06                                             | Day 06                                             |
| ------                                             | ------                                             |
| Time: 6ms                       Points: 512        | Time: 75ms                      Points: 256        |
| Benchmark: 0.124%               Level: *********-  | Benchmark: 0.217%               Level: ********--  |
|                                                    |                                                    |
| Day 07                                             | Day 07                                             |
| ------                                             | ------                                             |
| Time: 8ms                       Points: 512        | Time: 55ms                      Points: 512        |
| Benchmark: 0.165%               Level: *********-  | Benchmark: 0.159%               Level: *********-  |
|                                                    |                                                    |
| Day 08                                             | Day 08                                             |
| ------                                             | ------                                             |
| Time: 77ms                      Points: 64         | Time: 510ms                     Points: 64         |
| Benchmark: 1.587%               Level: ******----  | Benchmark: 1.471%               Level: ******----  |
|                                                    |                                                    |
| Day 09                                             | Day 09                                             |
| ------                                             | ------                                             |
| Time: 11ms                      Points: 256        | Time: 112ms                     Points: 256        |
| Benchmark: 0.227%               Level: ********--  | Benchmark: 0.323%               Level: ********--  |
|                                                    |                                                    |
| Day 10                                             | Day 10                                             |
| ------                                             | ------                                             |
| Time: 1ms                       Points: 1024       | Time: 6ms                       Points: 1024       |
| Benchmark: 0.021%               Level: **********  | Benchmark: 0.018%               Level: **********  |
|                                                    |                                                    |
| Day 11                                             | Day 11                                             |
| ------                                             | ------                                             |
| Time: 551ms                     Points: 8          | Time: 4292ms                    Points: 8          |
| Benchmark: 11.357%              Level: ***-------  | Benchmark: 12.375%              Level: ***-------  |
|                                                    |                                                    |
| Day 12                                             | Day 12                                             |
| ------                                             | ------                                             |
| Time: 4ms                       Points: 1024       | Time: 27ms                      Points: 1024       |
| Benchmark: 0.083%               Level: **********  | Benchmark: 0.078%               Level: **********  |
|                                                    |                                                    |
| Day 13                                             | Day 13                                             |
| ------                                             | ------                                             |
| Time: 1ms                       Points: 1024       | Time: 9ms                       Points: 1024       |
| Benchmark: 0.021%               Level: **********  | Benchmark: 0.026%               Level: **********  |
|                                                    |                                                    |
| Day 14                                             | Day 14                                             |
| ------                                             | ------                                             |
| Time: 199ms                     Points: 32         | Time: 1554ms                    Points: 32         |
| Benchmark: 4.102%               Level: *****-----  | Benchmark: 4.481%               Level: *****-----  |
|                                                    |                                                    |
| Day 15                                             | Day 15                                             |
| ------                                             | ------                                             |
| Time: 617ms                     Points: 8          | Time: 2593ms                    Points: 16         |
| Benchmark: 12.717%              Level: ***-------  | Benchmark: 7.476%               Level: ****------  |
|                                                    |                                                    |
| Day 16                                             | Day 16                                             |
| ------                                             | ------                                             |
| Time: 13ms                      Points: 256        | Time: 101ms                     Points: 256        |
| Benchmark: 0.268%               Level: ********--  | Benchmark: 0.292%               Level: ********--  |
|                                                    |                                                    |
| Day 17                                             | Day 17                                             |
| ------                                             | ------                                             |
| Time: 832ms                     Points: 8          | Time: 5662ms                    Points: 8          |
| Benchmark: 17.148%              Level: ***-------  | Benchmark: 16.325%              Level: ***-------  |
|                                                    |                                                    |
| Day 18                                             | Day 18                                             |
| ------                                             | ------                                             |
| Time: 15ms                      Points: 256        | Time: 144ms                     Points: 256        |
| Benchmark: 0.31%                Level: ********--  | Benchmark: 0.416%               Level: ********--  |
|                                                    |                                                    |
| Day 19                                             | Day 19                                             |
| ------                                             | ------                                             |
| Time: 133ms                     Points: 32         | Time: 1149ms                    Points: 32         |
| Benchmark: 2.742%               Level: *****-----  | Benchmark: 3.313%               Level: *****-----  |
|                                                    |                                                    |
| Day 20                                             | Day 20                                             |
| ------                                             | ------                                             |
| Time: 138ms                     Points: 32         | Time: 1045ms                    Points: 32         |
| Benchmark: 2.845%               Level: *****-----  | Benchmark: 3.013%               Level: *****-----  |
|                                                    |                                                    |
| Day 21                                             | Day 21                                             |
| ------                                             | ------                                             |
| Time: 3ms                       Points: 1024       | Time: 34ms                      Points: 1024       |
| Benchmark: 0.062%               Level: **********  | Benchmark: 0.099%               Level: **********  |
|                                                    |                                                    |
| Day 22                                             | Day 22                                             |
| ------                                             | ------                                             |
| Time: 784ms                     Points: 8          | Time: 5548ms                    Points: 8          |
| Benchmark: 16.159%              Level: ***-------  | Benchmark: 15.996%              Level: ***-------  |
|                                                    |                                                    |
| Day 23                                             | Day 23                                             |
| ------                                             | ------                                             |
| Time: 349ms                     Points: 16         | Time: 2811ms                    Points: 16         |
| Benchmark: 7.193%               Level: ****------  | Benchmark: 8.105%               Level: ****------  |
|                                                    |                                                    |
| Day 24                                             | Day 24                                             |
| ------                                             | ------                                             |
| Time: 753ms                     Points: 8          | Time: 5708ms                    Points: 8          |
| Benchmark: 15.52%               Level: ***-------  | Benchmark: 16.457%              Level: ***-------  |
|                                                    |                                                    |
| Day 25                                             | Day 25                                             |
| ------                                             | ------                                             |
| Time: 106ms                     Points: 32         | Time: 651ms                     Points: 64         |
| Benchmark: 2.185%               Level: *****-----  | Benchmark: 1.877%               Level: ******----  |
|                                                    |                                                    |
|--- SUMMARY ----------------------------------------|--- SUMMARY ----------------------------------------|
|                                                    |                                                    |
| Completed: 25 / 25                                 | Completed: 25 / 25                                 |
|                                                    |                                                    |
| Total time: 5007ms                                 | Total time: 35545ms                                |
| Benchmark (average): 4.128%                        | Benchmark (average): 4.100%                        |
|                                                    |                                                    |
| Total score: 8968                                  | Total score: 8496                                  |
| Level (average): *******---                        | Level (average): *******---                        |
|                                                    |                                                    |
+----------------------------------- git.io/JL9Qu ---+----------------------------------- git.io/JL9Qu ---+

License

Project is under open, non-restrictive ISC license.