|
|
… |
508 unchanged lines |
| 509 |
509 |
|
references pass 1.7 s. Phases are timed (`OXY_TIMINGS`): objects 5.1 s, |
| 510 |
510 |
|
references 1.7 s, states and checkpoints 10.4 s. |
| 511 |
511 |
|
|
|
512 |
+ |
|
|
513 |
+ |
### The full run (2026-09-30 06:24, main-0ba9b2e4) |
|
514 |
+ |
|
|
515 |
+ |
`~/bench/linux-bench.sh` on Earth, at load average 3.8 to 4.5 (flow jobs |
|
516 |
+ |
were running). Times are wall clock; memory is peak resident size. |
|
517 |
+ |
|
|
518 |
+ |
| Operation | oxy | Git | |
|
519 |
+ |
|---|---:|---:| |
|
520 |
+ |
| init and commit the tip | 38.50 s, 4.4 GB | 38.77 s, 42 MB | |
|
521 |
+ |
| status, clean (three runs) | 0.68 to 0.76 s, 123 MB | 0.35 to 0.76 s, 31 MB | |
|
522 |
+ |
| status, one file | 3.32 s, 641 MB | 0.59 s | |
|
523 |
+ |
| diff, one file | 2.93 s | 0.24 s | |
|
524 |
+ |
| commit, one file | 4.74 s, 752 MB | 0.45 s | |
|
525 |
+ |
| status, 1 000 files | 3.88 s, 811 MB | 0.41 s | |
|
526 |
+ |
| diff, 1 000 files | 2.83 s | 0.95 s | |
|
527 |
+ |
| commit, 1 000 files | 4.85 s, 922 MB | 0.57 s | |
|
528 |
+ |
| log -n 100 | 1.39 s, 291 MB | 0.01 s | |
|
529 |
+ |
| blame MAINTAINERS | 1.18 s, 335 MB | 0.09 s | |
|
530 |
+ |
| checkout the first state (run by hand) | 2.84 s | 0.42 s | |
|
531 |
+ |
| checkout back | 2.22 to 2.72 s, 491 MB | 0.47 s | |
|
532 |
+ |
| fsck | 22.10 s, 1.07 GB | 13.09 s | |
|
533 |
+ |
| gc | 39.66 s, 2.8 GB | 102.79 s | |
|
534 |
+ |
| store before gc | 414 MB | 648 MB | |
|
535 |
+ |
| store after gc | 324 MB | 295 MB | |
|
536 |
+ |
|
|
537 |
+ |
The script's own oxy checkout of the first state failed; its hash lacked |
|
538 |
+ |
the `#`, and the script is fixed. The time in the table is from running |
|
539 |
+ |
it by hand. |
|
540 |
+ |
|
|
541 |
+ |
Commit, one file: its graph keys now come from the state the commit |
|
542 |
+ |
extended rather than a reload of the new base (main-eff93613), which |
|
543 |
+ |
takes it to 3.05 to 3.27 s; the status after it takes 0.43 s. |
|
544 |
+ |
|
|
545 |
+ |
What is left for the everyday commands is mostly loading the base's |
|
546 |
+ |
history and its tree view (about 1 s of each) and rendering what |
|
547 |
+ |
changed. oxygen#41 proposes a base index that would make those reads |
|
548 |
+ |
proportional to what changed. |