Code Monkey home page Code Monkey logo

adventofcode2022.jl's Introduction

Advent of Code 2022

Solutions to Advent of Code 2022 edition in Julia.

Benchmarks

To run the benchmarks:

$ julia cli/benchmark.jl
┌─────┬──────┬────────────┬─────────────┬──────────┐
│ day │ part │       time │      memory │   allocs │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   1 │    0 │ 328.739 μs │  400.34 KiB │     3158 │
│   1 │    1 │  27.510 ns │     0 bytes │        0 │
│   1 │    2 │   1.240 μs │    2.14 KiB │        2 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   2 │    0 │ 590.212 μs │ 1022.09 KiB │     7535 │
│   2 │    1 │  65.009 μs │   19.61 KiB │        2 │
│   2 │    2 │  64.880 μs │   19.61 KiB │        2 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   3 │    0 │  13.574 μs │   42.70 KiB │       30 │
│   3 │    1 │ 252.105 μs │  508.44 KiB │     5088 │
│   3 │    2 │ 215.286 μs │  299.97 KiB │     3106 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   4 │    0 │ 946.497 μs │    1.60 MiB │    22034 │
│   4 │    1 │ 552.663 ns │     0 bytes │        0 │
│   4 │    2 │ 622.793 ns │     0 bytes │        0 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   5 │    0 │ 275.953 μs │  205.25 KiB │     1119 │
│   5 │    1 │ 114.076 μs │    4.44 KiB │       39 │
│   5 │    2 │ 115.189 μs │  148.31 KiB │     2405 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   6 │    0 │   3.343 μs │    9.70 KiB │       25 │
│   6 │    1 │  55.918 μs │   17.97 KiB │      203 │
│   6 │    2 │  83.378 μs │   12.61 KiB │      101 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   7 │    0 │ 447.512 μs │    1.02 MiB │     9174 │
│   7 │    1 │  27.268 μs │   65.09 KiB │      954 │
│   7 │    2 │  27.198 μs │   65.09 KiB │      954 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   8 │    0 │ 143.467 μs │  238.22 KiB │       47 │
│   8 │    1 │ 186.591 μs │  602.62 KiB │     8936 │
│   8 │    2 │ 497.140 μs │  588.06 KiB │     9409 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│   9 │    0 │ 450.641 μs │  741.56 KiB │     4034 │
│   9 │    1 │ 343.980 μs │  364.11 KiB │       24 │
│   9 │    2 │ 548.381 μs │   92.11 KiB │       20 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  10 │    0 │   7.386 μs │    8.88 KiB │       29 │
│  10 │    1 │  22.547 μs │   35.59 KiB │      268 │
│  10 │    2 │  29.630 μs │   43.78 KiB │      303 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  11 │    0 │  39.797 μs │   31.33 KiB │      332 │
│  11 │    1 │  98.849 μs │   11.20 KiB │      298 │
│  11 │    2 │  65.143 ms │   37.00 MiB │  2424303 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  12 │    0 │  38.626 μs │   67.67 KiB │       44 │
│  12 │    1 │   8.142 ms │  667.38 KiB │     5308 │
│  12 │    2 │ 725.146 ms │   79.08 MiB │   629088 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  13 │    0 │ 128.157 ms │    2.48 MiB │    45864 │
│  13 │    1 │  21.005 μs │    6.44 KiB │      103 │
│  13 │    2 │ 989.404 μs │  460.89 KiB │    20443 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  14 │    0 │   1.276 ms │    1.74 MiB │    28910 │
│  14 │    1 │ 520.833 μs │   59.20 KiB │       92 │
│  14 │    2 │ 612.435 ms │    1.63 MiB │       97 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  15 │    0 │  39.526 μs │   45.14 KiB │      722 │
│  15 │    1 │ 856.924 ns │    3.03 KiB │       29 │
│  15 │    2 │ 999.243 ms │    2.77 GiB │ 29601144 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  16 │    0 │ 122.121 μs │  268.91 KiB │     1865 │
│  16 │    1 │ 106.133 ms │  115.19 MiB │  1125289 │
│  16 │    2 │    1.504 s │  996.45 MiB │  9691898 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  17 │    0 │  18.329 μs │   60.83 KiB │       27 │
│  17 │    1 │    1.324 s │  322.21 MiB │ 20732215 │
│  17 │    2 │    3.904 s │  936.08 MiB │ 60671021 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  18 │    0 │   1.236 ms │    2.04 MiB │    22947 │
│  18 │    1 │ 242.202 μs │     0 bytes │        0 │
│  18 │    2 │ 186.965 ms │    2.09 MiB │    12795 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  19 │    0 │  56.253 μs │   73.48 KiB │      869 │
│  19 │    1 │ 358.019 ms │  816.13 MiB │  8914293 │
│  19 │    2 │    3.422 s │    7.39 GiB │ 82671797 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  20 │    0 │ 322.262 μs │  458.27 KiB │       35 │
│  20 │    1 │  17.128 ms │  684.03 KiB │    23475 │
│  20 │    2 │ 193.731 ms │  730.69 KiB │    23960 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  21 │    0 │   1.942 ms │    2.42 MiB │    30085 │
│  21 │    1 │ 119.142 μs │    3.73 KiB │      239 │
│  21 │    2 │   2.303 ms │   24.31 KiB │     1556 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  22 │    0 │   1.139 ms │    2.03 MiB │    13038 │
│  22 │    1 │  37.728 ms │    5.43 MiB │   147611 │
│  22 │    2 │   7.737 ms │    4.29 MiB │    93726 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  23 │    0 │  32.821 μs │  125.27 KiB │       36 │
│  23 │    1 │  96.684 ms │  129.90 MiB │  1373837 │
│  23 │    2 │    1.104 s │  736.11 MiB │  7802287 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  24 │    0 │ 105.384 μs │  417.42 KiB │     3216 │
│  24 │    1 │ 150.075 ms │    8.69 MiB │       41 │
│  24 │    2 │ 474.123 ms │   26.07 MiB │      133 │
├─────┼──────┼────────────┼─────────────┼──────────┤
│  25 │    0 │   6.743 μs │    9.56 KiB │       29 │
│  25 │    1 │  11.031 μs │    6.91 KiB │      176 │
│  25 │    2 │   0.019 ns │     0 bytes │        0 │
└─────┴──────┴────────────┴─────────────┴──────────┘

Part 0 refers to the parsing of the input data.

Other CLI tools

To generate (src and test) templates for a given day:

$ julia cli/generate_day.jl -h
usage: generate_day.jl [-h] nday

positional arguments:
  nday        day number for files to be generated

optional arguments:
  -h, --help  show this help message and exit

To download the input data of a given day:

$ julia cli/get_input.jl -h
usage: get_input.jl [-d DAY] [-h]

optional arguments:
  -d, --day DAY  day number for the input to be downloaded. If not
                 given take today's input (type: Int64)
  -h, --help     show this help message and exit

adventofcode2022.jl's People

Contributors

brucala avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.