{
  "tier": "ci",
  "tier_shape": [
    50000,
    20000,
    0.05
  ],
  "var_heavy_shape": [
    2000,
    36601
  ],
  "generated": "2026-09-24T15:41:03Z",
  "ref": "0.6.1",
  "platform": "Linux x86_64",
  "python": "3.12.3",
  "memory_limit_bytes": 12884901888,
  "page_cache_dropped": true,
  "repeats": 3,
  "versions": {
    "adata-cli": "0.6.1",
    "anndata": "0.13.4",
    "scanpy": "1.12.4"
  },
  "results": [
    {
      "case": "startup",
      "contender": "adata-cli",
      "wall_s": 0.557,
      "maxrss_bytes": 69447680,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.819,
        0.557,
        0.568
      ]
    },
    {
      "case": "startup",
      "contender": "anndata",
      "wall_s": 1.518,
      "maxrss_bytes": 132812800,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.652,
        1.518,
        1.572
      ]
    },
    {
      "case": "startup",
      "contender": "scanpy",
      "wall_s": 3.296,
      "maxrss_bytes": 265228288,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        9.165,
        3.296,
        3.457
      ]
    },
    {
      "case": "concat-inner",
      "contender": "adata-cli",
      "wall_s": 12.261,
      "maxrss_bytes": 177246208,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 583279667,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConcatenating \u001b[0m\u001b[1;36m2\u001b[0m\u001b[36m stores: \u001b[0m\u001b[1;36m100000\u001b[0m\u001b[36m obs x \u001b[0m\u001b[1;36m20000\u001b[0m\u001b[36m var \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36minner join\u001b[0m\u001b[1;36m)\u001b[0m\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m0\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m0.\u001b[0mh5ad\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m1\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m1.\u001b[0mh5ad\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconcat-inner.h5ad\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m100000\u001b[0m obs x \u001b[1;36m20000\u001b[0m \nvar\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        12.266,
        12.305,
        12.261
      ]
    },
    {
      "case": "concat-inner",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 6.18,
      "maxrss_bytes": 450977792,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 831906064,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.209,
        6.216,
        6.18
      ]
    },
    {
      "case": "concat-inner",
      "contender": "anndata (in memory)",
      "wall_s": 12.264,
      "maxrss_bytes": 1838088192,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294286,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.264,
        12.281,
        12.297
      ]
    },
    {
      "case": "concat-inner",
      "contender": "scanpy",
      "status": "n/a",
      "note": "scanpy has no concat of its own; it re-exports anndata's"
    },
    {
      "case": "concat-merge-same",
      "contender": "adata-cli",
      "wall_s": 1.741,
      "maxrss_bytes": 195551232,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 45655831,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConcatenating \u001b[0m\u001b[1;36m2\u001b[0m\u001b[36m stores: \u001b[0m\u001b[1;36m4000\u001b[0m\u001b[36m obs x \u001b[0m\u001b[1;36m36601\u001b[0m\u001b[36m var \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36minner join\u001b[0m\u001b[1;36m)\u001b[0m\n  \u001b[2mvar-heavy-\u001b[0m\u001b[1;2;36m0\u001b[0m: \u001b[1;36m2000\u001b[0m obs from var-heavy-\u001b[1;36m0.\u001b[0mh5ad\n  \u001b[2mvar-heavy-\u001b[0m\u001b[1;2;36m1\u001b[0m: \u001b[1;36m2000\u001b[0m obs from var-heavy-\u001b[1;36m1.\u001b[0mh5ad\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconcat-merge-same.h5ad\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m4000\u001b[0m obs x \u001b[1;36m36601\u001b[0m\nvar\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        1.741,
        1.741,
        1.741
      ]
    },
    {
      "case": "concat-merge-same",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 2.26,
      "maxrss_bytes": 247582720,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 63205915,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        2.287,
        2.262,
        2.26
      ]
    },
    {
      "case": "concat-merge-same",
      "contender": "anndata (in memory)",
      "wall_s": 2.672,
      "maxrss_bytes": 288018432,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 44610596,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        2.693,
        2.7,
        2.672
      ]
    },
    {
      "case": "subset-query",
      "contender": "adata-cli",
      "wall_s": 4.102,
      "maxrss_bytes": 212004864,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 147085650,
      "output_files": 1,
      "stderr_tail": "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting obs\u001b[0m       \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting var\u001b[0m       \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting X\u001b[0m         \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting obsm:X_pca\u001b[0m\n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting uns\u001b[0m       \n\u001b[?25h",
      "runs": 3,
      "wall_s_all": [
        4.105,
        4.129,
        4.102
      ]
    },
    {
      "case": "subset-query",
      "contender": "anndata (backed)",
      "wall_s": 4.939,
      "maxrss_bytes": 626499584,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 146642970,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        4.954,
        4.989,
        4.939
      ]
    },
    {
      "case": "subset-query",
      "contender": "anndata (in memory)",
      "wall_s": 5.211,
      "maxrss_bytes": 984420352,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 146642970,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        5.211,
        5.254,
        5.263
      ]
    },
    {
      "case": "subset-query",
      "contender": "scanpy (filter_cells)",
      "wall_s": 9.018,
      "maxrss_bytes": 1566396416,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291163286,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        9.018,
        9.066,
        9.069
      ]
    },
    {
      "case": "h5ad-to-zarr",
      "contender": "adata-cli",
      "wall_s": 7.81,
      "maxrss_bytes": 232873984,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 151559564,
      "output_files": 4717,
      "stderr_tail": "\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[1A\u001b[2K\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting obs\u001b[0m       \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting var\u001b[0m       \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting X\u001b[0m         \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting obsm:X_pca\u001b[0m\n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting uns\u001b[0m       \n\u001b[?25h",
      "runs": 3,
      "wall_s_all": [
        7.883,
        7.846,
        7.81
      ]
    },
    {
      "case": "h5ad-to-zarr",
      "contender": "anndata (in memory)",
      "wall_s": 6.151,
      "maxrss_bytes": 814854144,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 136819009,
      "output_files": 55,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.204,
        6.151,
        6.196
      ]
    },
    {
      "case": "h5ad-to-zarr",
      "contender": "scanpy",
      "status": "n/a",
      "note": "no streaming converter; scanpy defers to anndata"
    },
    {
      "case": "inspect",
      "contender": "adata-cli",
      "wall_s": 0.578,
      "maxrss_bytes": 71352320,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.578,
        0.6,
        0.588
      ]
    },
    {
      "case": "inspect",
      "contender": "anndata (read_elem on obs)",
      "wall_s": 1.761,
      "maxrss_bytes": 159879168,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.761,
        1.784,
        1.824
      ]
    },
    {
      "case": "inspect",
      "contender": "anndata (full load)",
      "wall_s": 3.199,
      "maxrss_bytes": 583745536,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.199,
        3.261,
        3.228
      ]
    },
    {
      "case": "export-obs",
      "contender": "adata-cli",
      "wall_s": 0.741,
      "maxrss_bytes": 85078016,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1848117,
      "output_files": 1,
      "stderr_tail": "\u001b[?25l\u001b[32m\u280b\u001b[0m \u001b[35mExporting rows 20000-30000 of 50000...\u001b[0m\n\u001b[2K\u001b[32m\u2819\u001b[0m \u001b[35mExporting rows 40000-50000 of 50000...\u001b[0m\n\u001b[2K\u001b[32m\u2819\u001b[0m \u001b[35mExporting rows 40000-50000 of 50000...\u001b[0m\n\u001b[?25h\n\u001b[1A\u001b[2K",
      "runs": 3,
      "wall_s_all": [
        0.76,
        0.741,
        0.749
      ]
    },
    {
      "case": "export-obs",
      "contender": "anndata (read_elem on obs)",
      "wall_s": 1.77,
      "maxrss_bytes": 160534528,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1798110,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.804,
        1.779,
        1.77
      ]
    },
    {
      "case": "export-obs",
      "contender": "anndata (full load)",
      "wall_s": 3.279,
      "maxrss_bytes": 583876608,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1798110,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.345,
        3.29,
        3.279
      ]
    },
    {
      "case": "split-by-sample",
      "contender": "adata-cli",
      "wall_s": 6.65,
      "maxrss_bytes": 198389760,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 302599423,
      "output_files": 9,
      "stderr_tail": "\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting X\u001b[0m         \n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting obsm:X_pca\u001b[0m\n\u001b[32m\u2713\u001b[0m \u001b[32mSubsetting uns\u001b[0m       \n\u001b[?25h\u001b[2mManifest written to \u001b[0m\n\u001b[2;35m/home/runner/work/_temp/bench/out/split-by-sample-out/\u001b[0m\u001b[2;95mci-0_manifest.csv\u001b[0m\n\u001b[32mWrote\u001b[0m \u001b[1;36m8\u001b[0m stores to \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95msplit-by-sample-out\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        6.723,
        6.65,
        6.673
      ]
    },
    {
      "case": "split-by-sample",
      "contender": "anndata (hand-written loop)",
      "wall_s": 7.808,
      "maxrss_bytes": 684929024,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 301681470,
      "output_files": 8,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.848,
        7.808,
        7.811
      ]
    },
    {
      "case": "ls",
      "contender": "adata-cli",
      "wall_s": 0.587,
      "maxrss_bytes": 70537216,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.588,
        0.587,
        0.597
      ]
    },
    {
      "case": "ls",
      "contender": "h5py (visit)",
      "wall_s": 1.66,
      "maxrss_bytes": 136302592,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.67,
        1.687,
        1.66
      ]
    },
    {
      "case": "ls",
      "contender": "h5ls -r",
      "wall_s": 0.0,
      "maxrss_bytes": 0,
      "exit_code": 127,
      "status": "n/a",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "h5ls is not installed",
      "runs": 1,
      "wall_s_all": [
        0.0
      ]
    },
    {
      "case": "create",
      "contender": "adata-cli",
      "wall_s": 0.638,
      "maxrss_bytes": 84451328,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 3395320,
      "output_files": 1,
      "stderr_tail": "\u001b[32mCreated\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mcreate.h5ad\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m50000\u001b[0m obs x \u001b[1;36m20000\u001b[0m var, \nempty\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        0.639,
        0.638,
        0.65
      ]
    },
    {
      "case": "create",
      "contender": "anndata",
      "wall_s": 8.727,
      "maxrss_bytes": 228110336,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 49249074,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        8.727,
        8.791,
        8.731
      ]
    },
    {
      "case": "export-array",
      "contender": "adata-cli",
      "wall_s": 0.599,
      "maxrss_bytes": 82616320,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 10000128,
      "output_files": 1,
      "stderr_tail": "\u001b[?25l\u001b[32m\u280b\u001b[0m \u001b[35mExporting obsm/X_pca: 48000-50000 of 50000...\u001b[0m\n\u001b[?25h\n\u001b[1A\u001b[2K\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mexport-array.npy\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        0.621,
        0.599,
        0.607
      ]
    },
    {
      "case": "export-array",
      "contender": "anndata (read_elem)",
      "wall_s": 1.67,
      "maxrss_bytes": 154263552,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 10000128,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.69,
        1.679,
        1.67
      ]
    },
    {
      "case": "export-array",
      "contender": "anndata (full load)",
      "wall_s": 3.266,
      "maxrss_bytes": 583770112,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 10000128,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.266,
        3.324,
        3.291
      ]
    },
    {
      "case": "export-sparse",
      "contender": "adata-cli",
      "wall_s": 25.521,
      "maxrss_bytes": 76312576,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 761315638,
      "output_files": 1,
      "stderr_tail": "\u001b[2K\u001b[32m\u2807\u001b[0m \u001b[35mExporting X: 49001-50000 of 50000...\u001b[0m\n\u001b[2K\u001b[32m\u280f\u001b[0m \u001b[35mExporting X: 49001-50000 of 50000...\u001b[0m\n\u001b[2K\u001b[32m\u280b\u001b[0m \u001b[35mExporting X: 49001-50000 of 50000...\u001b[0m\n\u001b[2K\u001b[32m\u280b\u001b[0m \u001b[35mExporting X: 49001-50000 of 50000...\u001b[0m\n\u001b[?25h\n\u001b[1A\u001b[2K\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mexport-sparse.mtx\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        25.705,
        25.567,
        25.521
      ]
    },
    {
      "case": "export-sparse",
      "contender": "anndata (sparse_dataset)",
      "wall_s": 7.121,
      "maxrss_bytes": 968704000,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 661616487,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.121,
        7.133,
        7.132
      ]
    },
    {
      "case": "export-sparse",
      "contender": "anndata (full load)",
      "wall_s": 7.232,
      "maxrss_bytes": 775127040,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 661616487,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.232,
        7.234,
        7.518
      ]
    },
    {
      "case": "import-dataframe",
      "contender": "adata-cli",
      "wall_s": 1.205,
      "maxrss_bytes": 114159616,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 295979458,
      "output_files": 1,
      "stderr_tail": "\u001b[2mCopied \u001b[0m\u001b[2;35m/home/runner/work/_temp/bench/fixtures/\u001b[0m\u001b[2;95mci-0.h5ad\u001b[0m\u001b[2m \u2192 \u001b[0m\n\u001b[2;35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[2;95mimport-dataframe.h5ad\u001b[0m\n\u001b[32mImported\u001b[0m \u001b[1;36m50000\u001b[0m rows x \u001b[1;36m5\u001b[0m columns into \u001b[32m'obs'\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m1\u001b[0m categorical\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        1.205,
        1.243,
        1.235
      ]
    },
    {
      "case": "import-dataframe",
      "contender": "anndata",
      "wall_s": 6.883,
      "maxrss_bytes": 596541440,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291188133,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.883,
        6.928,
        6.983
      ]
    },
    {
      "case": "concat-outer",
      "contender": "adata-cli",
      "wall_s": 12.198,
      "maxrss_bytes": 172044288,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 583279667,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConcatenating \u001b[0m\u001b[1;36m2\u001b[0m\u001b[36m stores: \u001b[0m\u001b[1;36m100000\u001b[0m\u001b[36m obs x \u001b[0m\u001b[1;36m20000\u001b[0m\u001b[36m var \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36mouter join\u001b[0m\u001b[1;36m)\u001b[0m\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m0\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m0.\u001b[0mh5ad\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m1\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m1.\u001b[0mh5ad\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconcat-outer.h5ad\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m100000\u001b[0m obs x \u001b[1;36m20000\u001b[0m \nvar\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        12.269,
        12.44,
        12.198
      ]
    },
    {
      "case": "concat-outer",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 6.258,
      "maxrss_bytes": 450547712,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 831906064,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.339,
        6.295,
        6.258
      ]
    },
    {
      "case": "concat-outer",
      "contender": "anndata (in memory)",
      "wall_s": 12.18,
      "maxrss_bytes": 1837699072,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294281,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.255,
        12.246,
        12.18
      ]
    },
    {
      "case": "convert-dtype",
      "contender": "adata-cli",
      "wall_s": 5.573,
      "maxrss_bytes": 90238976,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291143660,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConverting \u001b[0m\u001b[1;36m1\u001b[0m\u001b[36m matrix/matrices:\u001b[0m X\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconvert-dtype.h5ad\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        5.574,
        5.605,
        5.573
      ]
    },
    {
      "case": "convert-dtype",
      "contender": "anndata (in memory)",
      "wall_s": 6.907,
      "maxrss_bytes": 983764992,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291157806,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.945,
        6.907,
        7.077
      ]
    },
    {
      "case": "convert-dtype",
      "contender": "scanpy",
      "status": "n/a",
      "note": "no dtype rewrite; scanpy defers to anndata"
    },
    {
      "case": "convert-layout",
      "contender": "adata-cli (streaming)",
      "wall_s": 13.622,
      "maxrss_bytes": 369778688,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1225935830,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConverting \u001b[0m\u001b[1;36m1\u001b[0m\u001b[36m matrix/matrices:\u001b[0m X\n\u001b[2mTransposing \u001b[0m\u001b[1;2;36m50\u001b[0m\u001b[2m,\u001b[0m\u001b[1;2;36m000\u001b[0m\u001b[2m,\u001b[0m\u001b[1;2;36m000\u001b[0m\u001b[2m nonzeros through \u001b[0m\u001b[1;2;36m48\u001b[0m\u001b[2m buckets\u001b[0m\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconvert-layout.h5ad\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        13.774,
        13.622,
        13.641
      ]
    },
    {
      "case": "convert-layout",
      "contender": "adata-cli (--in-memory)",
      "wall_s": 9.52,
      "maxrss_bytes": 2290950144,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 296959140,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConverting \u001b[0m\u001b[1;36m1\u001b[0m\u001b[36m matrix/matrices:\u001b[0m X\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mconvert-layout.h5ad\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        9.555,
        9.52,
        9.597
      ]
    },
    {
      "case": "convert-layout",
      "contender": "anndata (in memory)",
      "wall_s": 7.216,
      "maxrss_bytes": 984240128,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 296972006,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.222,
        7.225,
        7.216
      ]
    },
    {
      "case": "rss-vs-size",
      "contender": "adata-cli",
      "wall_s": 12.129,
      "maxrss_bytes": 173797376,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 583279667,
      "output_files": 1,
      "stderr_tail": "\u001b[36mConcatenating \u001b[0m\u001b[1;36m2\u001b[0m\u001b[36m stores: \u001b[0m\u001b[1;36m100000\u001b[0m\u001b[36m obs x \u001b[0m\u001b[1;36m20000\u001b[0m\u001b[36m var \u001b[0m\u001b[1;36m(\u001b[0m\u001b[36minner join\u001b[0m\u001b[1;36m)\u001b[0m\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m0\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m0.\u001b[0mh5ad\n  \u001b[2mci-\u001b[0m\u001b[1;2;36m1\u001b[0m: \u001b[1;36m50000\u001b[0m obs from ci-\u001b[1;36m1.\u001b[0mh5ad\n\u001b[32mWrote\u001b[0m \u001b[35m/home/runner/work/_temp/bench/out/\u001b[0m\u001b[95mrss-vs-size.h5ad\u001b[0m \u001b[1m(\u001b[0m\u001b[1;36m100000\u001b[0m obs x \u001b[1;36m20000\u001b[0m \nvar\u001b[1m)\u001b[0m",
      "runs": 3,
      "wall_s_all": [
        12.129,
        12.287,
        12.313
      ]
    },
    {
      "case": "rss-vs-size",
      "contender": "anndata (in memory)",
      "wall_s": 12.178,
      "maxrss_bytes": 1837830144,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294281,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.178,
        12.184,
        12.299
      ]
    }
  ]
}
