{
  "tier": "ci",
  "tier_shape": [
    50000,
    20000,
    0.05
  ],
  "var_heavy_shape": [
    2000,
    36601
  ],
  "generated": "2026-09-24T10:35:13Z",
  "ref": "0.6.0",
  "platform": "Linux x86_64",
  "python": "3.12.3",
  "memory_limit_bytes": 12884901888,
  "page_cache_dropped": true,
  "repeats": 3,
  "versions": {
    "adata-cli": "0.6.0",
    "anndata": "0.13.4",
    "scanpy": "1.12.4"
  },
  "results": [
    {
      "case": "startup",
      "contender": "adata-cli",
      "wall_s": 0.608,
      "maxrss_bytes": 69218304,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.861,
        0.608,
        0.62
      ]
    },
    {
      "case": "startup",
      "contender": "anndata",
      "wall_s": 1.651,
      "maxrss_bytes": 132456448,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.879,
        1.713,
        1.651
      ]
    },
    {
      "case": "startup",
      "contender": "scanpy",
      "wall_s": 3.647,
      "maxrss_bytes": 264777728,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        8.235,
        3.689,
        3.647
      ]
    },
    {
      "case": "concat-inner",
      "contender": "adata-cli",
      "wall_s": 5.898,
      "maxrss_bytes": 176222208,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1232051192,
      "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": [
        5.939,
        5.9,
        5.898
      ]
    },
    {
      "case": "concat-inner",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 6.397,
      "maxrss_bytes": 450605056,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 831906064,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.397,
        6.457,
        6.397
      ]
    },
    {
      "case": "concat-inner",
      "contender": "anndata (in memory)",
      "wall_s": 12.274,
      "maxrss_bytes": 1837834240,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294281,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.334,
        12.514,
        12.274
      ]
    },
    {
      "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.242,
      "maxrss_bytes": 193515520,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 92625850,
      "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.266,
        1.242,
        1.246
      ]
    },
    {
      "case": "concat-merge-same",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 2.366,
      "maxrss_bytes": 247332864,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 63205915,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        2.366,
        2.418,
        2.449
      ]
    },
    {
      "case": "concat-merge-same",
      "contender": "anndata (in memory)",
      "wall_s": 2.837,
      "maxrss_bytes": 286695424,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 44610596,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        2.841,
        2.837,
        2.917
      ]
    },
    {
      "case": "subset-query",
      "contender": "adata-cli",
      "wall_s": 3.255,
      "maxrss_bytes": 345223168,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 309666809,
      "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": [
        3.262,
        3.294,
        3.255
      ]
    },
    {
      "case": "subset-query",
      "contender": "anndata (backed)",
      "wall_s": 5.16,
      "maxrss_bytes": 674668544,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 146642970,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        5.205,
        5.171,
        5.16
      ]
    },
    {
      "case": "subset-query",
      "contender": "anndata (in memory)",
      "wall_s": 5.418,
      "maxrss_bytes": 984195072,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 146642970,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        5.47,
        5.418,
        5.431
      ]
    },
    {
      "case": "subset-query",
      "contender": "scanpy (filter_cells)",
      "wall_s": 9.306,
      "maxrss_bytes": 1566150656,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291163286,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        9.328,
        9.306,
        9.339
      ]
    },
    {
      "case": "h5ad-to-zarr",
      "contender": "adata-cli",
      "wall_s": 6.043,
      "maxrss_bytes": 245952512,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 115260882,
      "output_files": 2133,
      "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": [
        6.043,
        6.048,
        6.089
      ]
    },
    {
      "case": "h5ad-to-zarr",
      "contender": "anndata (in memory)",
      "wall_s": 6.283,
      "maxrss_bytes": 778563584,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 136819009,
      "output_files": 55,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.283,
        6.347,
        6.309
      ]
    },
    {
      "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.617,
      "maxrss_bytes": 71458816,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.639,
        0.617,
        0.617
      ]
    },
    {
      "case": "inspect",
      "contender": "anndata (read_elem on obs)",
      "wall_s": 1.819,
      "maxrss_bytes": 159948800,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.871,
        2.038,
        1.819
      ]
    },
    {
      "case": "inspect",
      "contender": "anndata (full load)",
      "wall_s": 3.312,
      "maxrss_bytes": 583680000,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.332,
        3.312,
        3.444
      ]
    },
    {
      "case": "export-obs",
      "contender": "adata-cli",
      "wall_s": 0.77,
      "maxrss_bytes": 85553152,
      "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.781,
        0.779,
        0.77
      ]
    },
    {
      "case": "export-obs",
      "contender": "anndata (read_elem on obs)",
      "wall_s": 1.882,
      "maxrss_bytes": 159744000,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1798110,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.882,
        1.892,
        1.902
      ]
    },
    {
      "case": "export-obs",
      "contender": "anndata (full load)",
      "wall_s": 3.452,
      "maxrss_bytes": 583639040,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1798110,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.452,
        3.457,
        3.489
      ]
    },
    {
      "case": "split-by-sample",
      "contender": "adata-cli",
      "wall_s": 56.719,
      "maxrss_bytes": 753860608,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 630885813,
      "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": [
        58.69,
        58.62,
        56.719
      ]
    },
    {
      "case": "split-by-sample",
      "contender": "anndata (hand-written loop)",
      "wall_s": 7.821,
      "maxrss_bytes": 685199360,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 301681470,
      "output_files": 8,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.821,
        7.934,
        7.976
      ]
    },
    {
      "case": "ls",
      "contender": "adata-cli",
      "wall_s": 0.588,
      "maxrss_bytes": 70606848,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        0.622,
        0.627,
        0.588
      ]
    },
    {
      "case": "ls",
      "contender": "h5py (visit)",
      "wall_s": 1.648,
      "maxrss_bytes": 136392704,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 0,
      "output_files": 0,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.68,
        1.713,
        1.648
      ]
    },
    {
      "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.649,
      "maxrss_bytes": 84242432,
      "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.649,
        0.668,
        0.66
      ]
    },
    {
      "case": "create",
      "contender": "anndata",
      "wall_s": 8.831,
      "maxrss_bytes": 227966976,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 49249074,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        8.831,
        8.925,
        8.847
      ]
    },
    {
      "case": "export-array",
      "contender": "adata-cli",
      "wall_s": 0.649,
      "maxrss_bytes": 82841600,
      "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.649,
        0.668,
        0.71
      ]
    },
    {
      "case": "export-array",
      "contender": "anndata (read_elem)",
      "wall_s": 1.824,
      "maxrss_bytes": 154492928,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 10000128,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        1.918,
        1.824,
        1.834
      ]
    },
    {
      "case": "export-array",
      "contender": "anndata (full load)",
      "wall_s": 3.425,
      "maxrss_bytes": 583680000,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 10000128,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        3.542,
        3.493,
        3.425
      ]
    },
    {
      "case": "export-sparse",
      "contender": "adata-cli",
      "wall_s": 25.594,
      "maxrss_bytes": 76132352,
      "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\u2819\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.82,
        25.915,
        25.594
      ]
    },
    {
      "case": "export-sparse",
      "contender": "anndata (sparse_dataset)",
      "wall_s": 7.141,
      "maxrss_bytes": 967913472,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 661616487,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.326,
        7.358,
        7.141
      ]
    },
    {
      "case": "export-sparse",
      "contender": "anndata (full load)",
      "wall_s": 7.564,
      "maxrss_bytes": 773574656,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 661616487,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.952,
        7.564,
        7.87
      ]
    },
    {
      "case": "import-dataframe",
      "contender": "adata-cli",
      "wall_s": 1.267,
      "maxrss_bytes": 113774592,
      "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.28,
        1.289,
        1.267
      ]
    },
    {
      "case": "import-dataframe",
      "contender": "anndata",
      "wall_s": 7.021,
      "maxrss_bytes": 596336640,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291188133,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.131,
        7.161,
        7.021
      ]
    },
    {
      "case": "concat-outer",
      "contender": "adata-cli",
      "wall_s": 5.909,
      "maxrss_bytes": 176553984,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1232051192,
      "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": [
        5.915,
        5.909,
        5.946
      ]
    },
    {
      "case": "concat-outer",
      "contender": "anndata (concat_on_disk)",
      "wall_s": 6.488,
      "maxrss_bytes": 450740224,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 831906064,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        6.545,
        6.506,
        6.488
      ]
    },
    {
      "case": "concat-outer",
      "contender": "anndata (in memory)",
      "wall_s": 12.456,
      "maxrss_bytes": 1836818432,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294281,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.456,
        12.53,
        12.521
      ]
    },
    {
      "case": "convert-dtype",
      "contender": "adata-cli",
      "wall_s": 5.681,
      "maxrss_bytes": 90357760,
      "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.741,
        5.681,
        5.722
      ]
    },
    {
      "case": "convert-dtype",
      "contender": "anndata (in memory)",
      "wall_s": 7.004,
      "maxrss_bytes": 983764992,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 291157795,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.032,
        7.111,
        7.004
      ]
    },
    {
      "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": 14.002,
      "maxrss_bytes": 366047232,
      "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": [
        14.002,
        14.318,
        14.204
      ]
    },
    {
      "case": "convert-layout",
      "contender": "adata-cli (--in-memory)",
      "wall_s": 9.751,
      "maxrss_bytes": 2290774016,
      "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.781,
        9.869,
        9.751
      ]
    },
    {
      "case": "convert-layout",
      "contender": "anndata (in memory)",
      "wall_s": 7.396,
      "maxrss_bytes": 983793664,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 296971995,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        7.449,
        7.396,
        7.492
      ]
    },
    {
      "case": "rss-vs-size",
      "contender": "adata-cli",
      "wall_s": 5.928,
      "maxrss_bytes": 171077632,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 1232051192,
      "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": [
        6.049,
        5.928,
        6.038
      ]
    },
    {
      "case": "rss-vs-size",
      "contender": "anndata (in memory)",
      "wall_s": 12.559,
      "maxrss_bytes": 1837576192,
      "exit_code": 0,
      "status": "ok",
      "output_bytes": 580294281,
      "output_files": 1,
      "stderr_tail": "",
      "runs": 3,
      "wall_s_all": [
        12.559,
        12.771,
        12.76
      ]
    }
  ]
}
