Created
July 28, 2020 11:04
-
-
Save CreepySkeleton/8ee8a91bfe081221672908eb57fcf723 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <html> | |
| <head> | |
| <title>Cargo Build Timings — clap 3.0.0-beta.1</title> | |
| <meta charset="utf-8"> | |
| <style type="text/css"> | |
| html { | |
| font-family: sans-serif; | |
| } | |
| .canvas-container { | |
| position: relative; | |
| margin-top: 5px; | |
| margin-bottom: 5px; | |
| } | |
| h1 { | |
| border-bottom: 1px solid #c0c0c0; | |
| } | |
| .graph { | |
| display: block; | |
| } | |
| .my-table { | |
| margin-top: 20px; | |
| margin-bottom: 20px; | |
| border-collapse: collapse; | |
| box-shadow: 0 5px 10px rgba(0, 0, 0, 0.1); | |
| } | |
| .my-table th { | |
| color: #d5dde5; | |
| background: #1b1e24; | |
| border-bottom: 4px solid #9ea7af; | |
| border-right: 1px solid #343a45; | |
| font-size: 18px; | |
| font-weight: 100; | |
| padding: 12px; | |
| text-align: left; | |
| vertical-align: middle; | |
| } | |
| .my-table th:first-child { | |
| border-top-left-radius: 3px; | |
| } | |
| .my-table th:last-child { | |
| border-top-right-radius: 3px; | |
| border-right:none; | |
| } | |
| .my-table tr { | |
| border-top: 1px solid #c1c3d1; | |
| border-bottom: 1px solid #c1c3d1; | |
| font-size: 16px; | |
| font-weight: normal; | |
| } | |
| .my-table tr:first-child { | |
| border-top:none; | |
| } | |
| .my-table tr:last-child { | |
| border-bottom:none; | |
| } | |
| .my-table tr:nth-child(odd) td { | |
| background: #ebebeb; | |
| } | |
| .my-table tr:last-child td:first-child { | |
| border-bottom-left-radius:3px; | |
| } | |
| .my-table tr:last-child td:last-child { | |
| border-bottom-right-radius:3px; | |
| } | |
| .my-table td { | |
| background: #ffffff; | |
| padding: 10px; | |
| text-align: left; | |
| vertical-align: middle; | |
| font-weight: 300; | |
| font-size: 14px; | |
| border-right: 1px solid #C1C3D1; | |
| } | |
| .my-table td:last-child { | |
| border-right: 0px; | |
| } | |
| .summary-table td:first-child { | |
| vertical-align: top; | |
| text-align: right; | |
| } | |
| .input-table td { | |
| text-align: center; | |
| } | |
| .error-text { | |
| color: #e80000; | |
| } | |
| </style> | |
| </head> | |
| <body> | |
| <h1>Cargo Build Timings</h1> | |
| <table class="my-table summary-table"> | |
| <tr> | |
| <td>Targets:</td><td>clap 3.0.0-beta.1 (lib)</td> | |
| </tr> | |
| <tr> | |
| <td>Profile:</td><td>dev</td> | |
| </tr> | |
| <tr> | |
| <td>Fresh units:</td><td>0</td> | |
| </tr> | |
| <tr> | |
| <td>Dirty units:</td><td>43</td> | |
| </tr> | |
| <tr> | |
| <td>Total units:</td><td>43</td> | |
| </tr> | |
| <tr> | |
| <td>Max concurrency:</td><td>2 (jobs=2 ncpu=2)</td> | |
| </tr> | |
| <tr> | |
| <td>Build start:</td><td>2020-07-28T10:58:54Z</td> | |
| </tr> | |
| <tr> | |
| <td>Total time:</td><td>44.4s</td> | |
| </tr> | |
| <tr> | |
| <td>rustc:</td><td>rustc 1.47.0-nightly (6c8927b0c 2020-07-26)<br>Host: x86_64-unknown-linux-gnu<br>Target: x86_64-unknown-linux-gnu</td> | |
| </tr> | |
| <tr> | |
| <td>Max (global) rustc threads concurrency:</td><td>0</td> | |
| </tr> | |
| </table> | |
| <table class="input-table"> | |
| <tr> | |
| <td><label for="min-unit-time">Min unit time:</label></td> | |
| <td><label for="scale">Scale:</label></td> | |
| </tr> | |
| <tr> | |
| <td><input type="range" min="0" max="30" step="0.1" value="0" id="min-unit-time"></td> | |
| <td><input type="range" min="1" max="50" value="20" id="scale"></td> | |
| </tr> | |
| <tr> | |
| <td><output for="min-unit-time" id="min-unit-time-output"></output></td> | |
| <td><output for="scale" id="scale-output"></output></td> | |
| </tr> | |
| </table> | |
| <div id="pipeline-container" class="canvas-container"> | |
| <canvas id="pipeline-graph" class="graph" style="position: absolute; left: 0; top: 0; z-index: 0;"></canvas> | |
| <canvas id="pipeline-graph-lines" style="position: absolute; left: 0; top: 0; z-index: 1; pointer-events:none;"></canvas> | |
| </div> | |
| <div class="canvas-container"> | |
| <canvas id="timing-graph" class="graph"></canvas> | |
| </div> | |
| <table class="my-table"> | |
| <thead> | |
| <tr> | |
| <th></th> | |
| <th>Unit</th> | |
| <th>Total</th> | |
| <th>Codegen</th> | |
| <th>Features</th> | |
| </tr> | |
| </thead> | |
| <tbody> | |
| <tr> | |
| <td>1.</td> | |
| <td>syn v1.0.34</td> | |
| <td>12.5s</td> | |
| <td>5.3s (42%)</td> | |
| <td>clone-impls, default, derive, full, parsing, printing, proc-macro, quote, visit</td> | |
| </tr> | |
| <tr> | |
| <td>2.</td> | |
| <td>clap v3.0.0-beta.1</td> | |
| <td>11.5s</td> | |
| <td>5.6s (49%)</td> | |
| <td>atty, cargo, clap_derive, color, default, derive, lazy_static, std, strsim, suggestions, termcolor, unstable, yaml, yaml-rust</td> | |
| </tr> | |
| <tr> | |
| <td>3.</td> | |
| <td>clap_derive v3.0.0-beta.1</td> | |
| <td>7.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default, unstable</td> | |
| </tr> | |
| <tr> | |
| <td>4.</td> | |
| <td>yaml-rust v0.4.4</td> | |
| <td>3.2s</td> | |
| <td>2.0s (64%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>5.</td> | |
| <td>proc-macro2 v1.0.18</td> | |
| <td>2.2s</td> | |
| <td>1.2s (54%)</td> | |
| <td>default, proc-macro</td> | |
| </tr> | |
| <tr> | |
| <td>6.</td> | |
| <td>proc-macro-error-attr v1.0.3</td> | |
| <td>1.7s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>7.</td> | |
| <td>libc v0.2.72</td> | |
| <td>1.5s</td> | |
| <td>0.1s (7%)</td> | |
| <td>default, std</td> | |
| </tr> | |
| <tr> | |
| <td>8.</td> | |
| <td>autocfg v1.0.0</td> | |
| <td>1.5s</td> | |
| <td>1.0s (66%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>9.</td> | |
| <td>syn-mid v0.5.0</td> | |
| <td>1.3s</td> | |
| <td>0.9s (71%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>10.</td> | |
| <td>unicode-segmentation v1.6.0</td> | |
| <td>1.2s</td> | |
| <td>0.3s (23%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>11.</td> | |
| <td>version_check v0.9.2</td> | |
| <td>1.1s</td> | |
| <td>0.8s (71%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>12.</td> | |
| <td>strsim v0.10.0</td> | |
| <td>1.1s</td> | |
| <td>0.8s (71%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>13.</td> | |
| <td>termcolor v1.1.0</td> | |
| <td>1.0s</td> | |
| <td>0.5s (54%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>14.</td> | |
| <td>hashbrown v0.8.1</td> | |
| <td>1.0s</td> | |
| <td>0.0s (4%)</td> | |
| <td>raw</td> | |
| </tr> | |
| <tr> | |
| <td>15.</td> | |
| <td>proc-macro2 v1.0.18 custom-build</td> | |
| <td>0.9s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default, proc-macro</td> | |
| </tr> | |
| <tr> | |
| <td>16.</td> | |
| <td>libc v0.2.72 custom-build</td> | |
| <td>0.9s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default, std</td> | |
| </tr> | |
| <tr> | |
| <td>17.</td> | |
| <td>indexmap v1.5.0</td> | |
| <td>0.8s</td> | |
| <td>0.1s (11%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>18.</td> | |
| <td>quote v1.0.7</td> | |
| <td>0.8s</td> | |
| <td>0.4s (48%)</td> | |
| <td>default, proc-macro</td> | |
| </tr> | |
| <tr> | |
| <td>19.</td> | |
| <td>bitflags v1.2.1 custom-build</td> | |
| <td>0.8s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default</td> | |
| </tr> | |
| <tr> | |
| <td>20.</td> | |
| <td>syn v1.0.34 custom-build</td> | |
| <td>0.8s</td> | |
| <td>0.0s (0%)</td> | |
| <td>clone-impls, default, derive, full, parsing, printing, proc-macro, quote, visit</td> | |
| </tr> | |
| <tr> | |
| <td>21.</td> | |
| <td>proc-macro-error v1.0.3</td> | |
| <td>0.8s</td> | |
| <td>0.4s (51%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>22.</td> | |
| <td>textwrap v0.12.1</td> | |
| <td>0.7s</td> | |
| <td>0.5s (61%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>23.</td> | |
| <td>heck v0.3.1</td> | |
| <td>0.5s</td> | |
| <td>0.3s (66%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>24.</td> | |
| <td>proc-macro-error-attr v1.0.3 custom-build</td> | |
| <td>0.4s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>25.</td> | |
| <td>linked-hash-map v0.5.3</td> | |
| <td>0.3s</td> | |
| <td>0.0s (4%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>26.</td> | |
| <td>hashbrown v0.8.1 custom-build</td> | |
| <td>0.3s</td> | |
| <td>0.0s (0%)</td> | |
| <td>raw</td> | |
| </tr> | |
| <tr> | |
| <td>27.</td> | |
| <td>proc-macro-error v1.0.3 custom-build</td> | |
| <td>0.3s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>28.</td> | |
| <td>indexmap v1.5.0 custom-build</td> | |
| <td>0.3s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>29.</td> | |
| <td>vec_map v0.8.2</td> | |
| <td>0.3s</td> | |
| <td>0.0s (5%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>30.</td> | |
| <td>os_str_bytes v2.3.1</td> | |
| <td>0.3s</td> | |
| <td>0.1s (39%)</td> | |
| <td>raw</td> | |
| </tr> | |
| <tr> | |
| <td>31.</td> | |
| <td>unicode-xid v0.2.1</td> | |
| <td>0.2s</td> | |
| <td>0.0s (25%)</td> | |
| <td>default</td> | |
| </tr> | |
| <tr> | |
| <td>32.</td> | |
| <td>unicode-width v0.1.8</td> | |
| <td>0.2s</td> | |
| <td>0.0s (8%)</td> | |
| <td>default</td> | |
| </tr> | |
| <tr> | |
| <td>33.</td> | |
| <td>indexmap v1.5.0 custom-build (run)</td> | |
| <td>0.1s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>34.</td> | |
| <td>atty v0.2.14</td> | |
| <td>0.1s</td> | |
| <td>0.0s (17%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>35.</td> | |
| <td>lazy_static v1.4.0</td> | |
| <td>0.1s</td> | |
| <td>0.0s (11%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>36.</td> | |
| <td>proc-macro-error v1.0.3 custom-build (run)</td> | |
| <td>0.1s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>37.</td> | |
| <td>hashbrown v0.8.1 custom-build (run)</td> | |
| <td>0.1s</td> | |
| <td>0.0s (0%)</td> | |
| <td>raw</td> | |
| </tr> | |
| <tr> | |
| <td>38.</td> | |
| <td>bitflags v1.2.1</td> | |
| <td>0.1s</td> | |
| <td>0.0s (13%)</td> | |
| <td>default</td> | |
| </tr> | |
| <tr> | |
| <td>39.</td> | |
| <td>syn v1.0.34 custom-build (run)</td> | |
| <td>0.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td>clone-impls, default, derive, full, parsing, printing, proc-macro, quote, visit</td> | |
| </tr> | |
| <tr> | |
| <td>40.</td> | |
| <td>proc-macro-error-attr v1.0.3 custom-build (run)</td> | |
| <td>0.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td></td> | |
| </tr> | |
| <tr> | |
| <td>41.</td> | |
| <td>bitflags v1.2.1 custom-build (run)</td> | |
| <td>0.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default</td> | |
| </tr> | |
| <tr> | |
| <td>42.</td> | |
| <td>libc v0.2.72 custom-build (run)</td> | |
| <td>0.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default, std</td> | |
| </tr> | |
| <tr> | |
| <td>43.</td> | |
| <td>proc-macro2 v1.0.18 custom-build (run)</td> | |
| <td>0.0s</td> | |
| <td>0.0s (0%)</td> | |
| <td>default, proc-macro</td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| <script> | |
| DURATION = 45; | |
| const UNIT_DATA = [ | |
| { | |
| "i": 0, | |
| "name": "proc-macro2", | |
| "version": "1.0.18", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 0.15, | |
| "duration": 0.9, | |
| "rmeta_time": 0.9, | |
| "unlocked_units": [ | |
| 15 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 1, | |
| "name": "version_check", | |
| "version": "0.9.2", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 0.16, | |
| "duration": 1.14, | |
| "rmeta_time": 0.33, | |
| "unlocked_units": [ | |
| 17, | |
| 16 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 2, | |
| "name": "unicode-xid", | |
| "version": "0.2.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 1.05, | |
| "duration": 0.17, | |
| "rmeta_time": 0.13, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 3, | |
| "name": "syn", | |
| "version": "1.0.34", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 1.23, | |
| "duration": 0.76, | |
| "rmeta_time": 0.76, | |
| "unlocked_units": [ | |
| 18 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 4, | |
| "name": "autocfg", | |
| "version": "1.0.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 1.3, | |
| "duration": 1.45, | |
| "rmeta_time": 0.49, | |
| "unlocked_units": [ | |
| 20, | |
| 19 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 5, | |
| "name": "libc", | |
| "version": "0.2.72", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 1.98, | |
| "duration": 0.86, | |
| "rmeta_time": 0.86, | |
| "unlocked_units": [ | |
| 21 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 6, | |
| "name": "unicode-segmentation", | |
| "version": "1.6.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 2.75, | |
| "duration": 1.22, | |
| "rmeta_time": 0.93, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 23 | |
| ] | |
| }, | |
| { | |
| "i": 7, | |
| "name": "bitflags", | |
| "version": "1.2.1", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 2.85, | |
| "duration": 0.8, | |
| "rmeta_time": 0.8, | |
| "unlocked_units": [ | |
| 22 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 8, | |
| "name": "linked-hash-map", | |
| "version": "0.5.3", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 3.65, | |
| "duration": 0.33, | |
| "rmeta_time": 0.32, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 24 | |
| ] | |
| }, | |
| { | |
| "i": 9, | |
| "name": "unicode-width", | |
| "version": "0.1.8", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 3.97, | |
| "duration": 0.15, | |
| "rmeta_time": 0.14, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 25 | |
| ] | |
| }, | |
| { | |
| "i": 10, | |
| "name": "vec_map", | |
| "version": "0.8.2", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 3.98, | |
| "duration": 0.27, | |
| "rmeta_time": 0.26, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 11, | |
| "name": "termcolor", | |
| "version": "1.1.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 4.12, | |
| "duration": 1.02, | |
| "rmeta_time": 0.47, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 12, | |
| "name": "os_str_bytes", | |
| "version": "2.3.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 4.25, | |
| "duration": 0.25, | |
| "rmeta_time": 0.15, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 13, | |
| "name": "strsim", | |
| "version": "0.10.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 4.5, | |
| "duration": 1.1, | |
| "rmeta_time": 0.32, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 14, | |
| "name": "lazy_static", | |
| "version": "1.4.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 5.14, | |
| "duration": 0.1, | |
| "rmeta_time": 0.09, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 15, | |
| "name": "proc-macro2", | |
| "version": "1.0.18", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 5.24, | |
| "duration": 0.03, | |
| "rmeta_time": 0.03, | |
| "unlocked_units": [ | |
| 26 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 16, | |
| "name": "proc-macro-error-attr", | |
| "version": "1.0.3", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 5.27, | |
| "duration": 0.38, | |
| "rmeta_time": 0.38, | |
| "unlocked_units": [ | |
| 27 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 17, | |
| "name": "proc-macro-error", | |
| "version": "1.0.3", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 5.6, | |
| "duration": 0.3, | |
| "rmeta_time": 0.3, | |
| "unlocked_units": [ | |
| 28 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 18, | |
| "name": "syn", | |
| "version": "1.0.34", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 5.64, | |
| "duration": 0.04, | |
| "rmeta_time": 0.04, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 19, | |
| "name": "hashbrown", | |
| "version": "0.8.1", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 5.68, | |
| "duration": 0.32, | |
| "rmeta_time": 0.32, | |
| "unlocked_units": [ | |
| 29 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 20, | |
| "name": "indexmap", | |
| "version": "1.5.0", | |
| "mode": "todo", | |
| "target": " custom-build", | |
| "start": 5.9, | |
| "duration": 0.28, | |
| "rmeta_time": 0.28, | |
| "unlocked_units": [ | |
| 32 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 21, | |
| "name": "libc", | |
| "version": "0.2.72", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 6.0, | |
| "duration": 0.03, | |
| "rmeta_time": 0.03, | |
| "unlocked_units": [ | |
| 30 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 22, | |
| "name": "bitflags", | |
| "version": "1.2.1", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 6.03, | |
| "duration": 0.03, | |
| "rmeta_time": 0.03, | |
| "unlocked_units": [ | |
| 31 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 23, | |
| "name": "heck", | |
| "version": "0.3.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 6.06, | |
| "duration": 0.5, | |
| "rmeta_time": 0.17, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 24, | |
| "name": "yaml-rust", | |
| "version": "0.4.4", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 6.18, | |
| "duration": 3.19, | |
| "rmeta_time": 1.16, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 25, | |
| "name": "textwrap", | |
| "version": "0.12.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 6.57, | |
| "duration": 0.74, | |
| "rmeta_time": 0.29, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 26, | |
| "name": "proc-macro2", | |
| "version": "1.0.18", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 7.31, | |
| "duration": 2.16, | |
| "rmeta_time": 0.98, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 33 | |
| ] | |
| }, | |
| { | |
| "i": 27, | |
| "name": "proc-macro-error-attr", | |
| "version": "1.0.3", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 9.37, | |
| "duration": 0.03, | |
| "rmeta_time": 0.03, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 28, | |
| "name": "proc-macro-error", | |
| "version": "1.0.3", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 9.41, | |
| "duration": 0.09, | |
| "rmeta_time": 0.09, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 29, | |
| "name": "hashbrown", | |
| "version": "0.8.1", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 9.47, | |
| "duration": 0.09, | |
| "rmeta_time": 0.09, | |
| "unlocked_units": [ | |
| 34 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 30, | |
| "name": "libc", | |
| "version": "0.2.72", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 9.5, | |
| "duration": 1.48, | |
| "rmeta_time": 1.37, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 36 | |
| ] | |
| }, | |
| { | |
| "i": 31, | |
| "name": "bitflags", | |
| "version": "1.2.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 9.56, | |
| "duration": 0.05, | |
| "rmeta_time": 0.05, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 32, | |
| "name": "indexmap", | |
| "version": "1.5.0", | |
| "mode": "run-custom-build", | |
| "target": " custom-build (run)", | |
| "start": 9.62, | |
| "duration": 0.12, | |
| "rmeta_time": 0.12, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 33, | |
| "name": "quote", | |
| "version": "1.0.7", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 9.74, | |
| "duration": 0.8, | |
| "rmeta_time": 0.42, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 35 | |
| ] | |
| }, | |
| { | |
| "i": 34, | |
| "name": "hashbrown", | |
| "version": "0.8.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 10.54, | |
| "duration": 1.01, | |
| "rmeta_time": 0.97, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [ | |
| 37 | |
| ] | |
| }, | |
| { | |
| "i": 35, | |
| "name": "syn", | |
| "version": "1.0.34", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 10.98, | |
| "duration": 12.46, | |
| "rmeta_time": 7.16, | |
| "unlocked_units": [ | |
| 39 | |
| ], | |
| "unlocked_rmeta_units": [ | |
| 38 | |
| ] | |
| }, | |
| { | |
| "i": 36, | |
| "name": "atty", | |
| "version": "0.2.14", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 11.55, | |
| "duration": 0.1, | |
| "rmeta_time": 0.08, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 37, | |
| "name": "indexmap", | |
| "version": "1.5.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 11.65, | |
| "duration": 0.81, | |
| "rmeta_time": 0.72, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 38, | |
| "name": "syn-mid", | |
| "version": "0.5.0", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 18.15, | |
| "duration": 1.3, | |
| "rmeta_time": 0.37, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 39, | |
| "name": "proc-macro-error-attr", | |
| "version": "1.0.3", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 23.44, | |
| "duration": 1.72, | |
| "rmeta_time": 1.72, | |
| "unlocked_units": [ | |
| 40 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 40, | |
| "name": "proc-macro-error", | |
| "version": "1.0.3", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 25.16, | |
| "duration": 0.76, | |
| "rmeta_time": 0.37, | |
| "unlocked_units": [ | |
| 41 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 41, | |
| "name": "clap_derive", | |
| "version": "3.0.0-beta.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 25.92, | |
| "duration": 6.96, | |
| "rmeta_time": 6.96, | |
| "unlocked_units": [ | |
| 42 | |
| ], | |
| "unlocked_rmeta_units": [] | |
| }, | |
| { | |
| "i": 42, | |
| "name": "clap", | |
| "version": "3.0.0-beta.1", | |
| "mode": "todo", | |
| "target": "", | |
| "start": 32.88, | |
| "duration": 11.48, | |
| "rmeta_time": 5.91, | |
| "unlocked_units": [], | |
| "unlocked_rmeta_units": [] | |
| } | |
| ]; | |
| const CONCURRENCY_DATA = [ | |
| { | |
| "t": 0.154785455, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 28, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 0.155307039, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 28, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 0.482854866, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 28, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 0.983075934, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 28, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.0526043330000001, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 27, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.053464504, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 27, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.18206931, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 27, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.225250589, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 27, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.225524949, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 27, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.295222068, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 25, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.295874685, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 25, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.790069776, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 25, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.983372207, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 24, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 1.984017346, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 24, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 2.484142039, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 24, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 2.750404782, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 22, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 2.751099071, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 22, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 2.848687536, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 21, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 2.849147911, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 21, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.349275425, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 21, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.645086777, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 20, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.6456158419999998, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 20, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.683433793, | |
| "active": 2, | |
| "waiting": 15, | |
| "inactive": 19, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.965743964, | |
| "active": 2, | |
| "waiting": 16, | |
| "inactive": 18, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.967177467, | |
| "active": 2, | |
| "waiting": 15, | |
| "inactive": 18, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.967418837, | |
| "active": 2, | |
| "waiting": 15, | |
| "inactive": 18, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.98027882, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 18, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 3.98100536, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 18, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.109281896, | |
| "active": 2, | |
| "waiting": 15, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.121565641, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.121949403, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.23691921, | |
| "active": 2, | |
| "waiting": 14, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.251181156, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.251398463, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.404315399, | |
| "active": 2, | |
| "waiting": 13, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.504016613, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.504196928, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.59264516, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 4.822513087, | |
| "active": 2, | |
| "waiting": 12, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.13978165, | |
| "active": 2, | |
| "waiting": 11, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.140395211, | |
| "active": 2, | |
| "waiting": 11, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.2283925589999996, | |
| "active": 2, | |
| "waiting": 11, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.2394194370000005, | |
| "active": 2, | |
| "waiting": 10, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.23977175, | |
| "active": 2, | |
| "waiting": 10, | |
| "inactive": 17, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.267057853, | |
| "active": 2, | |
| "waiting": 10, | |
| "inactive": 16, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.267714287, | |
| "active": 2, | |
| "waiting": 10, | |
| "inactive": 16, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.603626881, | |
| "active": 2, | |
| "waiting": 9, | |
| "inactive": 16, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.604829817, | |
| "active": 2, | |
| "waiting": 9, | |
| "inactive": 16, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.644055904, | |
| "active": 2, | |
| "waiting": 9, | |
| "inactive": 15, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.644425954, | |
| "active": 2, | |
| "waiting": 9, | |
| "inactive": 15, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.6800949670000005, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 15, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.680917142, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 15, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.900957808, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 14, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 5.901947092, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 14, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.000372565, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 13, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.000673355, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 13, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.030772312, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 12, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.032082127, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 12, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.062594723, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 11, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.063479612, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 11, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.183129001, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.184234669, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.235046827, | |
| "active": 2, | |
| "waiting": 8, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.563864872, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.5650499369999995, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 6.854226998, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 7.310507555, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 7.3126282830000005, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 7.344412847, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 7.844562562, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 10, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 8.297291113, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 8.797479813, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.297722446, | |
| "active": 2, | |
| "waiting": 7, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.373411175, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.373829319, | |
| "active": 2, | |
| "waiting": 6, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.408405987, | |
| "active": 2, | |
| "waiting": 5, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.409186698, | |
| "active": 2, | |
| "waiting": 5, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.469353488, | |
| "active": 2, | |
| "waiting": 4, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.469761307, | |
| "active": 2, | |
| "waiting": 4, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.503625559, | |
| "active": 2, | |
| "waiting": 3, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.503911754, | |
| "active": 2, | |
| "waiting": 3, | |
| "inactive": 9, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.561032614, | |
| "active": 2, | |
| "waiting": 3, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.561700215, | |
| "active": 2, | |
| "waiting": 3, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.609235786, | |
| "active": 2, | |
| "waiting": 3, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.616861777, | |
| "active": 2, | |
| "waiting": 2, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.617160408, | |
| "active": 2, | |
| "waiting": 2, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.737071825, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 9.737993535, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 8, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.158382362, | |
| "active": 2, | |
| "waiting": 2, | |
| "inactive": 7, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.539120354, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 7, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.539610468, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 7, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.874938379, | |
| "active": 2, | |
| "waiting": 2, | |
| "inactive": 6, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.98055049, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 6, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 10.98169952, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 6, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.481849681, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 6, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.508932914, | |
| "active": 2, | |
| "waiting": 2, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.551862556, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.552247152, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.634311124, | |
| "active": 2, | |
| "waiting": 1, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.651876293, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 11.652192549, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.152316469, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.373008078, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462221141, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462369672, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.46238686, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.46240065, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462412067, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462423734, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462439143, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462450305, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462461644, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462472844, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462484281, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462495445, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462506886, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462517914, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462529075, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462540203, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462551392, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462562366, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462573395, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462584394, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462595576, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.46260657, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462617752, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462628645, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462639488, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462661965, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462697793, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462709261, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462721808, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462732686, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462744113, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462755103, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462765999, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462777086, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462787953, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.46279896, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.462811039, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 12.962936908, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 13.463221213, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 13.963503192, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 14.463742034, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 14.964039984, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 15.464315998, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 15.964850724, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 16.465169378, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 16.965422588, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 17.465710427, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 17.965970418, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 5, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 18.146301544, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 18.146942526, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 18.52132692, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 19.021558421, | |
| "active": 2, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 19.451211992, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 19.95169218, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 20.451939379, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 20.952239296, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 21.452503388, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 21.952756022, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 22.453019397, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 22.953285768, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 4, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 23.439265628, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 3, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 23.440004303, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 3, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 23.940128649000002, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 3, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 24.44043611, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 3, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 24.940761282, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 3, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 25.159216573, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 2, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 25.159792615, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 2, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 25.534052875, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 2, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 25.917001739, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 25.918548894, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 26.418726984, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 26.919055001, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 27.41942124, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 27.91972289, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 28.420004632, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 28.920281145, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 29.420578495, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 29.920818623, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 30.421035166, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 30.921323316, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 31.421662343, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 31.921883848, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 32.422149859, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 1, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 32.881544943, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 32.882952364, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 33.38313345, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 33.883403478, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 34.383676479, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 34.883940478, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 35.384269972, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 35.884548372, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 36.384814589, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 36.885088636, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 37.385336853, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 37.885611232, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 38.38589335, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 38.793797383, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 39.29400773, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 39.794264513, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 40.294516522, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 40.794784171, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 41.295053553, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 41.795303137, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 42.295561671, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 42.795873527, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 43.296242544, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 43.79661289, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 44.29687192, | |
| "active": 1, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| }, | |
| { | |
| "t": 44.365706993, | |
| "active": 0, | |
| "waiting": 0, | |
| "inactive": 0, | |
| "rustc_parallelism": 0 | |
| } | |
| ]; | |
| const CPU_USAGE = [ | |
| [ | |
| 0.482857015, | |
| 98.50746268656717 | |
| ], | |
| [ | |
| 0.983077344, | |
| 89.8989898989899 | |
| ], | |
| [ | |
| 1.18207006, | |
| 100.0 | |
| ], | |
| [ | |
| 1.295222554, | |
| 91.30434782608695 | |
| ], | |
| [ | |
| 1.7900725419999999, | |
| 100.0 | |
| ], | |
| [ | |
| 1.9833729249999998, | |
| 100.0 | |
| ], | |
| [ | |
| 2.48414442, | |
| 99.0 | |
| ], | |
| [ | |
| 2.750405319, | |
| 100.0 | |
| ], | |
| [ | |
| 3.349278316, | |
| 100.0 | |
| ], | |
| [ | |
| 3.6450871769999997, | |
| 100.0 | |
| ], | |
| [ | |
| 3.965744575, | |
| 98.46153846153847 | |
| ], | |
| [ | |
| 4.109282589, | |
| 100.0 | |
| ], | |
| [ | |
| 4.236920697, | |
| 100.0 | |
| ], | |
| [ | |
| 4.404317028, | |
| 100.0 | |
| ], | |
| [ | |
| 4.5926470550000005, | |
| 100.0 | |
| ], | |
| [ | |
| 4.822513584, | |
| 100.0 | |
| ], | |
| [ | |
| 5.139782053, | |
| 100.0 | |
| ], | |
| [ | |
| 5.267059583, | |
| 100.0 | |
| ], | |
| [ | |
| 5.60362907, | |
| 98.52941176470588 | |
| ], | |
| [ | |
| 5.900958215, | |
| 100.0 | |
| ], | |
| [ | |
| 6.030774559, | |
| 100.0 | |
| ], | |
| [ | |
| 6.183129822, | |
| 96.7741935483871 | |
| ], | |
| [ | |
| 6.563865367, | |
| 100.0 | |
| ], | |
| [ | |
| 6.854227467, | |
| 100.0 | |
| ], | |
| [ | |
| 7.310507984, | |
| 100.0 | |
| ], | |
| [ | |
| 7.8445634250000005, | |
| 100.0 | |
| ], | |
| [ | |
| 8.2972916, | |
| 100.0 | |
| ], | |
| [ | |
| 8.797480723, | |
| 100.0 | |
| ], | |
| [ | |
| 9.29772325, | |
| 100.0 | |
| ], | |
| [ | |
| 9.40840778, | |
| 95.23809523809524 | |
| ], | |
| [ | |
| 9.561034165, | |
| 93.54838709677419 | |
| ], | |
| [ | |
| 9.737073985, | |
| 100.0 | |
| ], | |
| [ | |
| 10.158384009, | |
| 100.0 | |
| ], | |
| [ | |
| 10.539120661, | |
| 100.0 | |
| ], | |
| [ | |
| 10.87494, | |
| 100.0 | |
| ], | |
| [ | |
| 10.98055094, | |
| 95.45454545454545 | |
| ], | |
| [ | |
| 11.481850632, | |
| 100.0 | |
| ], | |
| [ | |
| 11.634312647, | |
| 100.0 | |
| ], | |
| [ | |
| 12.152320687, | |
| 100.0 | |
| ], | |
| [ | |
| 12.37300858, | |
| 100.0 | |
| ], | |
| [ | |
| 12.962937759999999, | |
| 57.758620689655174 | |
| ], | |
| [ | |
| 13.463222337, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 13.963504109, | |
| 49.494949494949495 | |
| ], | |
| [ | |
| 14.463743138, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 14.964041035, | |
| 49.494949494949495 | |
| ], | |
| [ | |
| 15.464317083, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 15.964851828, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 16.465170494, | |
| 50.0 | |
| ], | |
| [ | |
| 16.965423752, | |
| 50.0 | |
| ], | |
| [ | |
| 17.465711285, | |
| 50.0 | |
| ], | |
| [ | |
| 17.965971598, | |
| 50.0 | |
| ], | |
| [ | |
| 18.146302212, | |
| 48.57142857142858 | |
| ], | |
| [ | |
| 18.521328669, | |
| 100.0 | |
| ], | |
| [ | |
| 19.021559774, | |
| 100.0 | |
| ], | |
| [ | |
| 19.451212355, | |
| 100.0 | |
| ], | |
| [ | |
| 19.951693627, | |
| 99.0 | |
| ], | |
| [ | |
| 20.451940324, | |
| 100.0 | |
| ], | |
| [ | |
| 20.952240107, | |
| 100.0 | |
| ], | |
| [ | |
| 21.452504402, | |
| 100.0 | |
| ], | |
| [ | |
| 21.952757265, | |
| 99.0 | |
| ], | |
| [ | |
| 22.453020419, | |
| 100.0 | |
| ], | |
| [ | |
| 22.953286939, | |
| 100.0 | |
| ], | |
| [ | |
| 23.43926598, | |
| 82.47422680412372 | |
| ], | |
| [ | |
| 23.940130619, | |
| 66.0 | |
| ], | |
| [ | |
| 24.440437131, | |
| 66.0 | |
| ], | |
| [ | |
| 24.940762797, | |
| 50.0 | |
| ], | |
| [ | |
| 25.159216939, | |
| 51.162790697674424 | |
| ], | |
| [ | |
| 25.534054618, | |
| 49.33333333333333 | |
| ], | |
| [ | |
| 25.917002603, | |
| 89.33333333333333 | |
| ], | |
| [ | |
| 26.418728248, | |
| 50.0 | |
| ], | |
| [ | |
| 26.919056094, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 27.419422416, | |
| 50.0 | |
| ], | |
| [ | |
| 27.919724384, | |
| 50.0 | |
| ], | |
| [ | |
| 28.420005902, | |
| 51.0 | |
| ], | |
| [ | |
| 28.920282038, | |
| 90.9090909090909 | |
| ], | |
| [ | |
| 29.420579439, | |
| 100.0 | |
| ], | |
| [ | |
| 29.920819447, | |
| 100.0 | |
| ], | |
| [ | |
| 30.421036165, | |
| 94.0 | |
| ], | |
| [ | |
| 30.92132376, | |
| 94.94949494949495 | |
| ], | |
| [ | |
| 31.421663551, | |
| 95.87628865979381 | |
| ], | |
| [ | |
| 31.921884705, | |
| 59.0 | |
| ], | |
| [ | |
| 32.422151291, | |
| 50.0 | |
| ], | |
| [ | |
| 32.881545319, | |
| 50.53763440860215 | |
| ], | |
| [ | |
| 33.383134413, | |
| 50.0 | |
| ], | |
| [ | |
| 33.883404378, | |
| 54.0 | |
| ], | |
| [ | |
| 34.383677679, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 34.883941691, | |
| 50.0 | |
| ], | |
| [ | |
| 35.384270959, | |
| 50.0 | |
| ], | |
| [ | |
| 35.884549501, | |
| 50.495049504950494 | |
| ], | |
| [ | |
| 36.384815698, | |
| 50.0 | |
| ], | |
| [ | |
| 36.885089506, | |
| 49.494949494949495 | |
| ], | |
| [ | |
| 37.385337781, | |
| 50.505050505050505 | |
| ], | |
| [ | |
| 37.885612154, | |
| 50.0 | |
| ], | |
| [ | |
| 38.385894394, | |
| 50.0 | |
| ], | |
| [ | |
| 38.793797845, | |
| 55.55555555555556 | |
| ], | |
| [ | |
| 39.294009038, | |
| 78.0 | |
| ], | |
| [ | |
| 39.794265541, | |
| 100.0 | |
| ], | |
| [ | |
| 40.294517406, | |
| 100.0 | |
| ], | |
| [ | |
| 40.794785199, | |
| 99.0 | |
| ], | |
| [ | |
| 41.29505449, | |
| 100.0 | |
| ], | |
| [ | |
| 41.795304131, | |
| 100.0 | |
| ], | |
| [ | |
| 42.295562169, | |
| 97.02970297029702 | |
| ], | |
| [ | |
| 42.79587454, | |
| 100.0 | |
| ], | |
| [ | |
| 43.296243532, | |
| 96.96969696969697 | |
| ], | |
| [ | |
| 43.796613857, | |
| 92.63157894736842 | |
| ], | |
| [ | |
| 44.29687289, | |
| 76.0 | |
| ] | |
| ]; | |
| // Position of the vertical axis. | |
| const X_LINE = 50; | |
| // General-use margin size. | |
| const MARGIN = 5; | |
| // Position of the horizontal axis, relative to the bottom. | |
| const Y_LINE = 35; | |
| // Minimum distance between time tick labels. | |
| const MIN_TICK_DIST = 50; | |
| // Radius for rounded rectangle corners. | |
| const RADIUS = 3; | |
| // Height of unit boxes. | |
| const BOX_HEIGHT = 25; | |
| // Distance between Y tick marks on the unit graph. | |
| const Y_TICK_DIST = BOX_HEIGHT + 2; | |
| // Rects used for mouseover detection. | |
| // Objects of {x, y, x2, y2, i} where `i` is the index into UNIT_DATA. | |
| let HIT_BOXES = []; | |
| // Index into UNIT_DATA of the last unit hovered over by mouse. | |
| let LAST_HOVER = null; | |
| // Key is unit index, value is {x, y, width, rmeta_x} of the box. | |
| let UNIT_COORDS = {}; | |
| // Map of unit index to the index it was unlocked by. | |
| let REVERSE_UNIT_DEPS = {}; | |
| let REVERSE_UNIT_RMETA_DEPS = {}; | |
| for (let n=0; n<UNIT_DATA.length; n++) { | |
| let unit = UNIT_DATA[n]; | |
| for (let unlocked of unit.unlocked_units) { | |
| REVERSE_UNIT_DEPS[unlocked] = n; | |
| } | |
| for (let unlocked of unit.unlocked_rmeta_units) { | |
| REVERSE_UNIT_RMETA_DEPS[unlocked] = n; | |
| } | |
| } | |
| function render_pipeline_graph() { | |
| if (UNIT_DATA.length == 0) { | |
| return; | |
| } | |
| let g = document.getElementById('pipeline-graph'); | |
| HIT_BOXES.length = 0; | |
| g.onmousemove = pipeline_mousemove; | |
| const min_time = document.getElementById('min-unit-time').valueAsNumber; | |
| const units = UNIT_DATA.filter(unit => unit.duration >= min_time); | |
| const graph_height = Y_TICK_DIST * units.length; | |
| const {ctx, graph_width, canvas_width, canvas_height, px_per_sec} = draw_graph_axes('pipeline-graph', graph_height); | |
| const container = document.getElementById('pipeline-container'); | |
| container.style.width = canvas_width; | |
| container.style.height = canvas_height; | |
| // Canvas for hover highlights. This is a separate layer to improve performance. | |
| const linectx = setup_canvas('pipeline-graph-lines', canvas_width, canvas_height); | |
| linectx.clearRect(0, 0, canvas_width, canvas_height); | |
| // Draw Y tick marks. | |
| for (let n=1; n<units.length; n++) { | |
| const y = graph_height - (n * Y_TICK_DIST); | |
| ctx.beginPath(); | |
| ctx.moveTo(X_LINE, y); | |
| ctx.lineTo(X_LINE-5, y); | |
| ctx.stroke(); | |
| } | |
| // Draw Y labels. | |
| ctx.textAlign = 'end'; | |
| for (let n=0; n<units.length; n++) { | |
| let y = MARGIN + (Y_TICK_DIST * (n + 1)) - 13; | |
| ctx.fillText(n+1, X_LINE-4, y); | |
| } | |
| // Draw the graph. | |
| ctx.save(); | |
| ctx.translate(X_LINE, MARGIN); | |
| // Compute x,y coordinate of each block. | |
| UNIT_COORDS = {}; | |
| for (i=0; i<units.length; i++) { | |
| let unit = units[i]; | |
| let y = i * Y_TICK_DIST + 1; | |
| let x = px_per_sec * unit.start; | |
| let rmeta_x = null; | |
| if (unit.rmeta_time != null) { | |
| rmeta_x = x + px_per_sec * unit.rmeta_time; | |
| } | |
| let width = Math.max(px_per_sec * unit.duration, 1.0); | |
| UNIT_COORDS[unit.i] = {x, y, width, rmeta_x}; | |
| } | |
| // Draw the blocks. | |
| for (i=0; i<units.length; i++) { | |
| let unit = units[i]; | |
| let {x, y, width, rmeta_x} = UNIT_COORDS[unit.i]; | |
| HIT_BOXES.push({x: X_LINE+x, y:MARGIN+y, x2: X_LINE+x+width, y2: MARGIN+y+BOX_HEIGHT, i: unit.i}); | |
| ctx.beginPath(); | |
| ctx.fillStyle = unit.mode == 'run-custom-build' ? '#f0b165' : '#95cce8'; | |
| roundedRect(ctx, x, y, width, BOX_HEIGHT, RADIUS); | |
| ctx.fill(); | |
| if (unit.rmeta_time != null) { | |
| ctx.beginPath(); | |
| ctx.fillStyle = '#aa95e8'; | |
| let ctime = unit.duration - unit.rmeta_time; | |
| roundedRect(ctx, rmeta_x, y, px_per_sec * ctime, BOX_HEIGHT, RADIUS); | |
| ctx.fill(); | |
| } | |
| ctx.fillStyle = "#000"; | |
| ctx.textAlign = 'start'; | |
| ctx.textBaseline = 'hanging'; | |
| ctx.font = '14px sans-serif'; | |
| const label = `${unit.name}${unit.target} ${unit.duration}s`; | |
| const text_info = ctx.measureText(label); | |
| const label_x = Math.min(x + 5.0, canvas_width - text_info.width - X_LINE); | |
| ctx.fillText(label, label_x, y + BOX_HEIGHT / 2 - 6); | |
| draw_dep_lines(ctx, unit.i, false); | |
| } | |
| ctx.restore(); | |
| } | |
| // Draws lines from the given unit to the units it unlocks. | |
| function draw_dep_lines(ctx, unit_idx, highlighted) { | |
| const unit = UNIT_DATA[unit_idx]; | |
| const {x, y, rmeta_x} = UNIT_COORDS[unit_idx]; | |
| ctx.save(); | |
| for (const unlocked of unit.unlocked_units) { | |
| draw_one_dep_line(ctx, x, y, unlocked, highlighted); | |
| } | |
| for (const unlocked of unit.unlocked_rmeta_units) { | |
| draw_one_dep_line(ctx, rmeta_x, y, unlocked, highlighted); | |
| } | |
| ctx.restore(); | |
| } | |
| function draw_one_dep_line(ctx, from_x, from_y, to_unit, highlighted) { | |
| if (to_unit in UNIT_COORDS) { | |
| let {x: u_x, y: u_y} = UNIT_COORDS[to_unit]; | |
| ctx.strokeStyle = highlighted ? '#000' : '#ddd'; | |
| ctx.setLineDash([2]); | |
| ctx.beginPath(); | |
| ctx.moveTo(from_x, from_y+BOX_HEIGHT/2); | |
| ctx.lineTo(from_x-5, from_y+BOX_HEIGHT/2); | |
| ctx.lineTo(from_x-5, u_y+BOX_HEIGHT/2); | |
| ctx.lineTo(u_x, u_y+BOX_HEIGHT/2); | |
| ctx.stroke(); | |
| } | |
| } | |
| function render_timing_graph() { | |
| if (CONCURRENCY_DATA.length == 0) { | |
| return; | |
| } | |
| const HEIGHT = 400; | |
| const AXIS_HEIGHT = HEIGHT - MARGIN - Y_LINE; | |
| const TOP_MARGIN = 10; | |
| const GRAPH_HEIGHT = AXIS_HEIGHT - TOP_MARGIN; | |
| const {canvas_width, graph_width, ctx} = draw_graph_axes('timing-graph', AXIS_HEIGHT); | |
| // Draw Y tick marks and labels. | |
| let max_v = 0; | |
| for (c of CONCURRENCY_DATA) { | |
| max_v = Math.max(max_v, c.active, c.waiting, c.inactive); | |
| } | |
| const px_per_v = GRAPH_HEIGHT / max_v; | |
| const {step, tick_dist, num_ticks} = split_ticks(max_v, px_per_v, GRAPH_HEIGHT); | |
| ctx.textAlign = 'end'; | |
| for (n=0; n<num_ticks; n++) { | |
| let y = HEIGHT - Y_LINE - ((n + 1) * tick_dist); | |
| ctx.beginPath(); | |
| ctx.moveTo(X_LINE, y); | |
| ctx.lineTo(X_LINE-5, y); | |
| ctx.stroke(); | |
| ctx.fillText((n+1) * step, X_LINE-10, y+5); | |
| } | |
| // Label the Y axis. | |
| let label_y = (HEIGHT - Y_LINE) / 2; | |
| ctx.save(); | |
| ctx.translate(15, label_y); | |
| ctx.rotate(3*Math.PI/2); | |
| ctx.textAlign = 'center'; | |
| ctx.fillText('# Units', 0, 0); | |
| ctx.restore(); | |
| // Draw the graph. | |
| ctx.save(); | |
| ctx.translate(X_LINE, MARGIN); | |
| function coord(t, v) { | |
| return { | |
| x: graph_width * (t/DURATION), | |
| y: TOP_MARGIN + GRAPH_HEIGHT * (1.0 - (v / max_v)) | |
| }; | |
| } | |
| const cpuFillStyle = 'rgba(250, 119, 0, 0.2)'; | |
| if (CPU_USAGE.length > 1) { | |
| ctx.beginPath(); | |
| ctx.fillStyle = cpuFillStyle; | |
| let bottomLeft = coord(CPU_USAGE[0][0], 0); | |
| ctx.moveTo(bottomLeft.x, bottomLeft.y); | |
| for (let i=0; i < CPU_USAGE.length; i++) { | |
| let [time, usage] = CPU_USAGE[i]; | |
| let {x, y} = coord(time, usage / 100.0 * max_v); | |
| ctx.lineTo(x, y); | |
| } | |
| let bottomRight = coord(CPU_USAGE[CPU_USAGE.length - 1][0], 0); | |
| ctx.lineTo(bottomRight.x, bottomRight.y); | |
| ctx.fill(); | |
| } | |
| function draw_line(style, key) { | |
| let first = CONCURRENCY_DATA[0]; | |
| let last = coord(first.t, key(first)); | |
| ctx.strokeStyle = style; | |
| ctx.beginPath(); | |
| ctx.moveTo(last.x, last.y); | |
| for (let i=1; i<CONCURRENCY_DATA.length; i++) { | |
| let c = CONCURRENCY_DATA[i]; | |
| let {x, y} = coord(c.t, key(c)); | |
| ctx.lineTo(x, last.y); | |
| ctx.lineTo(x, y); | |
| last = {x, y}; | |
| } | |
| ctx.stroke(); | |
| } | |
| draw_line('blue', function(c) {return c.inactive;}); | |
| draw_line('red', function(c) {return c.waiting;}); | |
| draw_line('green', function(c) {return c.active;}); | |
| // Draw a legend. | |
| ctx.restore(); | |
| ctx.save(); | |
| ctx.translate(canvas_width-200, MARGIN); | |
| // background | |
| ctx.fillStyle = '#fff'; | |
| ctx.strokeStyle = '#000'; | |
| ctx.lineWidth = 1; | |
| ctx.textBaseline = 'middle' | |
| ctx.textAlign = 'start'; | |
| ctx.beginPath(); | |
| ctx.rect(0, 0, 150, 82); | |
| ctx.stroke(); | |
| ctx.fill(); | |
| ctx.fillStyle = '#000' | |
| ctx.beginPath(); | |
| ctx.lineWidth = 2; | |
| ctx.strokeStyle = 'red'; | |
| ctx.moveTo(5, 10); | |
| ctx.lineTo(50, 10); | |
| ctx.stroke(); | |
| ctx.fillText('Waiting', 54, 11); | |
| ctx.beginPath(); | |
| ctx.strokeStyle = 'blue'; | |
| ctx.moveTo(5, 30); | |
| ctx.lineTo(50, 30); | |
| ctx.stroke(); | |
| ctx.fillText('Inactive', 54, 31); | |
| ctx.beginPath(); | |
| ctx.strokeStyle = 'green'; | |
| ctx.moveTo(5, 50); | |
| ctx.lineTo(50, 50); | |
| ctx.stroke(); | |
| ctx.fillText('Active', 54, 51); | |
| ctx.beginPath(); | |
| ctx.fillStyle = cpuFillStyle | |
| ctx.fillRect(15, 60, 30, 15); | |
| ctx.fill(); | |
| ctx.fillStyle = 'black'; | |
| ctx.fillText('CPU Usage', 54, 71); | |
| ctx.restore(); | |
| } | |
| function setup_canvas(id, width, height) { | |
| let g = document.getElementById(id); | |
| let dpr = window.devicePixelRatio || 1; | |
| g.width = width * dpr; | |
| g.height = height * dpr; | |
| g.style.width = width; | |
| g.style.height = height; | |
| let ctx = g.getContext('2d'); | |
| ctx.scale(dpr, dpr); | |
| return ctx; | |
| } | |
| function draw_graph_axes(id, graph_height) { | |
| const scale = document.getElementById('scale').valueAsNumber; | |
| // Cap the size of the graph. It is hard to view if it is too large, and | |
| // browsers may not render a large graph because it takes too much memory. | |
| // 4096 is still ridiculously large, and probably won't render on mobile | |
| // browsers, but should be ok for many desktop environments. | |
| const graph_width = Math.min(scale * DURATION, 4096); | |
| const px_per_sec = graph_width / DURATION; | |
| const canvas_width = Math.max(graph_width + X_LINE + 30, X_LINE + 250); | |
| const canvas_height = graph_height + MARGIN + Y_LINE; | |
| let ctx = setup_canvas(id, canvas_width, canvas_height); | |
| ctx.fillStyle = '#f7f7f7'; | |
| ctx.fillRect(0, 0, canvas_width, canvas_height); | |
| ctx.lineWidth = 2; | |
| ctx.font = '16px sans-serif'; | |
| ctx.textAlign = 'center'; | |
| // Draw main axes. | |
| ctx.beginPath(); | |
| ctx.moveTo(X_LINE, MARGIN); | |
| ctx.lineTo(X_LINE, graph_height + MARGIN); | |
| ctx.lineTo(X_LINE+graph_width+20, graph_height + MARGIN); | |
| ctx.stroke(); | |
| // Draw X tick marks. | |
| const {step, tick_dist, num_ticks} = split_ticks(DURATION, px_per_sec, graph_width); | |
| ctx.fillStyle = '#303030'; | |
| for (let n=0; n<num_ticks; n++) { | |
| const x = X_LINE + ((n + 1) * tick_dist); | |
| ctx.beginPath(); | |
| ctx.moveTo(x, canvas_height-Y_LINE); | |
| ctx.lineTo(x, canvas_height-Y_LINE+5); | |
| ctx.stroke(); | |
| ctx.fillText(`${(n+1) * step}s`, x, canvas_height - Y_LINE + 20); | |
| } | |
| // Draw vertical lines. | |
| ctx.strokeStyle = '#e6e6e6'; | |
| ctx.setLineDash([2, 4]); | |
| for (n=0; n<num_ticks; n++) { | |
| const x = X_LINE + ((n + 1) * tick_dist); | |
| ctx.beginPath(); | |
| ctx.moveTo(x, MARGIN); | |
| ctx.lineTo(x, MARGIN+graph_height); | |
| ctx.stroke(); | |
| } | |
| ctx.strokeStyle = '#000'; | |
| ctx.setLineDash([]); | |
| return {canvas_width, canvas_height, graph_width, graph_height, ctx, px_per_sec}; | |
| } | |
| // Determine the spacing and number of ticks along an axis. | |
| function split_ticks(max_value, px_per_v, max_px) { | |
| const max_ticks = Math.floor(max_px / MIN_TICK_DIST); | |
| if (max_ticks <= 1) { | |
| // Graph is too small for even 1 tick. | |
| return {step: max_value, tick_dist: max_px, num_ticks: 1}; | |
| } | |
| let step; | |
| if (max_value <= max_ticks) { | |
| step = 1; | |
| } else if (max_value <= max_ticks * 2) { | |
| step = 2; | |
| } else if (max_value <= max_ticks * 4) { | |
| step = 4; | |
| } else if (max_value <= max_ticks * 5) { | |
| step = 5; | |
| } else { | |
| step = 10; | |
| let count = 0; | |
| while (true) { | |
| if (count > 100) { | |
| throw Error("tick loop too long"); | |
| } | |
| count += 1; | |
| if (max_value <= max_ticks * step) { | |
| break; | |
| } | |
| step += 10; | |
| } | |
| } | |
| const tick_dist = px_per_v * step; | |
| const num_ticks = Math.floor(max_value / step); | |
| return {step, tick_dist, num_ticks}; | |
| } | |
| function codegen_time(unit) { | |
| if (unit.rmeta_time == null) { | |
| return null; | |
| } | |
| let ctime = unit.duration - unit.rmeta_time; | |
| return [unit.rmeta_time, ctime]; | |
| } | |
| function roundedRect(ctx, x, y, width, height, r) { | |
| r = Math.min(r, width, height); | |
| ctx.beginPath(); | |
| ctx.moveTo(x+r, y); | |
| ctx.lineTo(x+width-r, y); | |
| ctx.arc(x+width-r, y+r, r, 3*Math.PI/2, 0); | |
| ctx.lineTo(x+width, y+height-r); | |
| ctx.arc(x+width-r, y+height-r, r, 0, Math.PI/2); | |
| ctx.lineTo(x+r, y+height); | |
| ctx.arc(x+r, y+height-r, r, Math.PI/2, Math.PI); | |
| ctx.lineTo(x, y-r); | |
| ctx.arc(x+r, y+r, r, Math.PI, 3*Math.PI/2); | |
| ctx.closePath(); | |
| } | |
| function pipeline_mouse_hit(event) { | |
| // This brute-force method can be optimized if needed. | |
| for (let box of HIT_BOXES) { | |
| if (event.offsetX >= box.x && event.offsetX <= box.x2 && | |
| event.offsetY >= box.y && event.offsetY <= box.y2) { | |
| return box; | |
| } | |
| } | |
| } | |
| function pipeline_mousemove(event) { | |
| // Highlight dependency lines on mouse hover. | |
| let box = pipeline_mouse_hit(event); | |
| if (box) { | |
| if (box.i != LAST_HOVER) { | |
| LAST_HOVER = box.i; | |
| let g = document.getElementById('pipeline-graph-lines'); | |
| let ctx = g.getContext('2d'); | |
| ctx.clearRect(0, 0, g.width, g.height); | |
| ctx.save(); | |
| ctx.translate(X_LINE, MARGIN); | |
| ctx.lineWidth = 2; | |
| draw_dep_lines(ctx, box.i, true); | |
| if (box.i in REVERSE_UNIT_DEPS) { | |
| const dep_unit = REVERSE_UNIT_DEPS[box.i]; | |
| if (dep_unit in UNIT_COORDS) { | |
| const {x, y, rmeta_x} = UNIT_COORDS[dep_unit]; | |
| draw_one_dep_line(ctx, x, y, box.i, true); | |
| } | |
| } | |
| if (box.i in REVERSE_UNIT_RMETA_DEPS) { | |
| const dep_unit = REVERSE_UNIT_RMETA_DEPS[box.i]; | |
| if (dep_unit in UNIT_COORDS) { | |
| const {x, y, rmeta_x} = UNIT_COORDS[dep_unit]; | |
| draw_one_dep_line(ctx, rmeta_x, y, box.i, true); | |
| } | |
| } | |
| ctx.restore(); | |
| } | |
| } | |
| } | |
| render_pipeline_graph(); | |
| render_timing_graph(); | |
| // Set up and handle controls. | |
| { | |
| const range = document.getElementById('min-unit-time'); | |
| const time_output = document.getElementById('min-unit-time-output'); | |
| time_output.innerHTML = `${range.value}s`; | |
| range.oninput = event => { | |
| time_output.innerHTML = `${range.value}s`; | |
| render_pipeline_graph(); | |
| }; | |
| const scale = document.getElementById('scale'); | |
| const scale_output = document.getElementById('scale-output'); | |
| scale_output.innerHTML = `${scale.value}`; | |
| scale.oninput = event => { | |
| scale_output.innerHTML = `${scale.value}`; | |
| render_pipeline_graph(); | |
| render_timing_graph(); | |
| }; | |
| } | |
| </script> | |
| </body> | |
| </html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment