{
  "generatedBy": "bench.mjs",
  "startedAt": "2026-10-03T20:59:44.698Z",
  "finishedAt": "2026-10-03T20:59:44.824Z",
  "machine": {
    "cpu": "Apple M1",
    "os": "Darwin 26.3",
    "arch": "arm64",
    "node": "v22.18.0",
    "python": "Python 3.13.5"
  },
  "metricCount": 132,
  "metrics": [
    {
      "metric": "ollama_version",
      "value": "0.35.1",
      "unit": "",
      "note": "official ollama-darwin.tgz from the v0.35.1 GitHub release"
    },
    {
      "metric": "metal_gpu_memory_reported",
      "value": 5.3,
      "unit": "GiB",
      "note": "Ollama server log 'vram-based default context' line on the 8 GB M1"
    },
    {
      "metric": "default_num_ctx",
      "value": 4096,
      "unit": "tokens",
      "note": "Ollama server log 'vram-based default context'; also the CONTEXT column of `ollama ps` for every default load"
    },
    {
      "metric": "ollama_runner",
      "value": "bundled llama-server",
      "unit": "",
      "note": "Ollama 0.35.1 log shows it starting its own llama-server binary for qwen3.5 tags"
    },
    {
      "metric": "qwen3.5:9b_ollama_list_size",
      "value": "6.6 GB",
      "unit": "",
      "note": "SIZE column of `ollama list` after pull (raw/*pull*.txt)"
    },
    {
      "metric": "qwen3.5:4b_ollama_list_size",
      "value": "3.4 GB",
      "unit": "",
      "note": "SIZE column of `ollama list` after pull (raw/*pull*.txt)"
    },
    {
      "metric": "qwen3.5:2b_ollama_list_size",
      "value": "2.7 GB",
      "unit": "",
      "note": "SIZE column of `ollama list` after pull (raw/*pull*.txt)"
    },
    {
      "metric": "qwen3.5:9b_file_type",
      "value": "Q4_K - Medium",
      "unit": "",
      "note": "print_info: file type, Ollama server log"
    },
    {
      "metric": "qwen3.5:9b_layers_on_gpu",
      "value": "12/34",
      "unit": "layers",
      "note": "load_tensors: offloaded N/M layers to GPU"
    },
    {
      "metric": "qwen3.5:9b_kv_cache_mib",
      "value": 128,
      "unit": "MiB",
      "note": "llama_kv_cache size line: 4096 cells, 8 KV layers, f16 K and V"
    },
    {
      "metric": "qwen3.5:9b_kv_layers",
      "value": 8,
      "unit": "layers",
      "note": "layers that hold a KV cache (hybrid attention: the rest keep a fixed recurrent state)"
    },
    {
      "metric": "qwen3.5:9b_kv_per_token",
      "value": 32,
      "unit": "KiB",
      "note": "kv_cache_mib x 1024 / cells"
    },
    {
      "metric": "qwen3.5:9b_mmproj_worst_case_mib",
      "value": 1313.78,
      "unit": "MiB",
      "note": "vision projector memory estimate logged at load"
    },
    {
      "metric": "qwen3.5:4b_file_type",
      "value": "Q4_K - Medium",
      "unit": "",
      "note": "print_info: file type, Ollama server log"
    },
    {
      "metric": "qwen3.5:4b_layers_on_gpu",
      "value": "33/34",
      "unit": "layers",
      "note": "load_tensors: offloaded N/M layers to GPU"
    },
    {
      "metric": "qwen3.5:4b_kv_cache_mib",
      "value": 128,
      "unit": "MiB",
      "note": "llama_kv_cache size line: 4096 cells, 8 KV layers, f16 K and V"
    },
    {
      "metric": "qwen3.5:4b_kv_layers",
      "value": 8,
      "unit": "layers",
      "note": "layers that hold a KV cache (hybrid attention: the rest keep a fixed recurrent state)"
    },
    {
      "metric": "qwen3.5:4b_kv_per_token",
      "value": 32,
      "unit": "KiB",
      "note": "kv_cache_mib x 1024 / cells"
    },
    {
      "metric": "qwen3.5:4b_mmproj_worst_case_mib",
      "value": 1019.73,
      "unit": "MiB",
      "note": "vision projector memory estimate logged at load"
    },
    {
      "metric": "qwen3.5:4b_32k_file_type",
      "value": "Q4_K - Medium",
      "unit": "",
      "note": "print_info: file type, Ollama server log"
    },
    {
      "metric": "qwen3.5:4b_32k_layers_on_gpu",
      "value": "22/34",
      "unit": "layers",
      "note": "load_tensors: offloaded N/M layers to GPU"
    },
    {
      "metric": "qwen3.5:4b_32k_kv_cache_mib",
      "value": 1024,
      "unit": "MiB",
      "note": "llama_kv_cache size line: 32768 cells, 8 KV layers, f16 K and V"
    },
    {
      "metric": "qwen3.5:4b_32k_kv_layers",
      "value": 8,
      "unit": "layers",
      "note": "layers that hold a KV cache (hybrid attention: the rest keep a fixed recurrent state)"
    },
    {
      "metric": "qwen3.5:4b_32k_kv_per_token",
      "value": 32,
      "unit": "KiB",
      "note": "kv_cache_mib x 1024 / cells"
    },
    {
      "metric": "qwen3.5:4b_32k_mmproj_worst_case_mib",
      "value": 1019.73,
      "unit": "MiB",
      "note": "vision projector memory estimate logged at load"
    },
    {
      "metric": "qwen3.5:2b_file_type",
      "value": "Q8_0",
      "unit": "",
      "note": "print_info: file type, Ollama server log"
    },
    {
      "metric": "qwen3.5:2b_layers_on_gpu",
      "value": "26/26",
      "unit": "layers",
      "note": "load_tensors: offloaded N/M layers to GPU"
    },
    {
      "metric": "qwen3.5:2b_kv_cache_mib",
      "value": 48,
      "unit": "MiB",
      "note": "llama_kv_cache size line: 4096 cells, 6 KV layers, f16 K and V"
    },
    {
      "metric": "qwen3.5:2b_kv_layers",
      "value": 6,
      "unit": "layers",
      "note": "layers that hold a KV cache (hybrid attention: the rest keep a fixed recurrent state)"
    },
    {
      "metric": "qwen3.5:2b_kv_per_token",
      "value": 12,
      "unit": "KiB",
      "note": "kv_cache_mib x 1024 / cells"
    },
    {
      "metric": "qwen3.5:2b_mmproj_worst_case_mib",
      "value": 1015.73,
      "unit": "MiB",
      "note": "vision projector memory estimate logged at load"
    },
    {
      "metric": "qwen3.5:9b_attempt1_prompt_tps",
      "value": 1.91,
      "unit": "tok/s",
      "note": "first 9B request (31 prompt tokens), llama-server print_timing",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_attempt1_outcome",
      "value": "aborted: 200-token request not finished after 17m29s; HTTP 500 on cancel",
      "unit": "",
      "note": "Ollama GIN log line '500 | 17m29s | POST /api/generate'"
    },
    {
      "metric": "qwen3.5:9b_attempt1_swap_used_peak",
      "value": 10.3,
      "unit": "GiB",
      "note": "sysctl vm.swapusage sampled every 30 s during attempt 1",
      "n": 10
    },
    {
      "metric": "qwen3.5:9b_attempt1_disk_free_min",
      "value": 4.9,
      "unit": "GiB",
      "note": "df during attempt 1 (swap files grew on the boot volume; disk free was ~11 GiB before the load)",
      "n": 10
    },
    {
      "metric": "qwen3.5:9b_run1_load_s",
      "value": 53.36,
      "unit": "s",
      "note": "load_duration from /api/generate; model was not resident before either run",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run1_eval_tps",
      "value": 0.079,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, num_predict 10, think false, default 4k context",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run1_prompt_tps",
      "value": 0.802,
      "unit": "tok/s",
      "note": "prompt_eval_count/prompt_eval_duration",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run1_swap_used_after",
      "value": 5.8,
      "unit": "GiB",
      "note": "sysctl vm.swapusage right after the request",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run2_load_s",
      "value": 47.93,
      "unit": "s",
      "note": "load_duration from /api/generate; model was not resident before either run",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run2_eval_tps",
      "value": 0.086,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, num_predict 10, think false, default 4k context",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run2_prompt_tps",
      "value": 1.209,
      "unit": "tok/s",
      "note": "prompt_eval_count/prompt_eval_duration",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_run2_swap_used_after",
      "value": 6.33,
      "unit": "GiB",
      "note": "sysctl vm.swapusage right after the request",
      "n": 1
    },
    {
      "metric": "qwen3.5:9b_ollama_ps_size",
      "value": "6.2 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:9b_ollama_ps_processor",
      "value": "58%/42% CPU/GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:9b_ollama_ps_context",
      "value": 4096,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps` with no num_ctx set"
    },
    {
      "metric": "qwen3.5:4b_session1_ollama_ps_size",
      "value": "3.8 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session1_ollama_ps_processor",
      "value": "18%/82% CPU/GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session1_ollama_ps_context",
      "value": 4096,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session1_cold_load_s",
      "value": 5.15,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_session1_cold_eval_tps",
      "value": 9.507,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_session1_warm_eval_tps_median",
      "value": 8.96,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 6.18, max 9.901",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session1_warm_eval_tps_min",
      "value": 6.18,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session1_warm_eval_tps_max",
      "value": 9.901,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session1_warm_prompt_tps_median",
      "value": 144.9,
      "unit": "tok/s",
      "note": "35-token prompt; min 137.837, max 178.639",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session1_swap_used_before",
      "value": 2.82,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:4b_session1_swap_used_after_max",
      "value": 3.36,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "qwen3.5:4b_32k_session1_ollama_ps_size",
      "value": "4.9 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session1_ollama_ps_processor",
      "value": "38%/62% CPU/GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session1_ollama_ps_context",
      "value": 32768,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session1_cold_load_s",
      "value": 8.21,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_32k_session1_cold_eval_tps",
      "value": 4.602,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_32k_session1_warm_eval_tps_median",
      "value": 3.98,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 3.553, max 4.223",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session1_warm_eval_tps_min",
      "value": 3.553,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session1_warm_eval_tps_max",
      "value": 4.223,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session1_warm_prompt_tps_median",
      "value": 42.7,
      "unit": "tok/s",
      "note": "35-token prompt; min 29.398, max 72.969",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session1_swap_used_before",
      "value": 3.17,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:4b_32k_session1_swap_used_after_max",
      "value": 4.19,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "qwen3.5:2b_session1_ollama_ps_size",
      "value": "2.4 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session1_ollama_ps_processor",
      "value": "100% GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session1_ollama_ps_context",
      "value": 4096,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session1_cold_load_s",
      "value": 4.13,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:2b_session1_cold_eval_tps",
      "value": 7.341,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:2b_session1_warm_eval_tps_median",
      "value": 6.67,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 6.409, max 7.494",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session1_warm_eval_tps_min",
      "value": 6.409,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session1_warm_eval_tps_max",
      "value": 7.494,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session1_warm_prompt_tps_median",
      "value": 161.4,
      "unit": "tok/s",
      "note": "35-token prompt; min 129.971, max 164.529",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session1_swap_used_before",
      "value": 2.85,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:2b_session1_swap_used_after_max",
      "value": 2.91,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "qwen3.5:4b_session2_ollama_ps_size",
      "value": "3.8 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session2_ollama_ps_processor",
      "value": "18%/82% CPU/GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session2_ollama_ps_context",
      "value": 4096,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_session2_cold_load_s",
      "value": 5.38,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_session2_cold_eval_tps",
      "value": 18.187,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_session2_warm_eval_tps_median",
      "value": 18.55,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 18.252, max 18.606",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session2_warm_eval_tps_min",
      "value": 18.252,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session2_warm_eval_tps_max",
      "value": 18.606,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session2_warm_prompt_tps_median",
      "value": 263.9,
      "unit": "tok/s",
      "note": "35-token prompt; min 260.258, max 273.564",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_session2_swap_used_before",
      "value": 3.29,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:4b_session2_swap_used_after_max",
      "value": 4.32,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "qwen3.5:4b_32k_session2_ollama_ps_size",
      "value": "4.9 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session2_ollama_ps_processor",
      "value": "38%/62% CPU/GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session2_ollama_ps_context",
      "value": 32768,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:4b_32k_session2_cold_load_s",
      "value": 8.45,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_32k_session2_cold_eval_tps",
      "value": 9.265,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:4b_32k_session2_warm_eval_tps_median",
      "value": 14.37,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 10.508, max 17.425",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session2_warm_eval_tps_min",
      "value": 10.508,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session2_warm_eval_tps_max",
      "value": 17.425,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session2_warm_prompt_tps_median",
      "value": 132,
      "unit": "tok/s",
      "note": "35-token prompt; min 75.088, max 150.37",
      "n": 3
    },
    {
      "metric": "qwen3.5:4b_32k_session2_swap_used_before",
      "value": 2.81,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:4b_32k_session2_swap_used_after_max",
      "value": 4,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "qwen3.5:2b_session2_ollama_ps_size",
      "value": "2.4 GB",
      "unit": "",
      "note": "SIZE column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session2_ollama_ps_processor",
      "value": "100% GPU",
      "unit": "",
      "note": "PROCESSOR column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session2_ollama_ps_context",
      "value": 4096,
      "unit": "tokens",
      "note": "CONTEXT column of `ollama ps`"
    },
    {
      "metric": "qwen3.5:2b_session2_cold_load_s",
      "value": 3.85,
      "unit": "s",
      "note": "load_duration of the first request after unloading all models (file may still be in page cache)",
      "n": 1
    },
    {
      "metric": "qwen3.5:2b_session2_cold_eval_tps",
      "value": 26.862,
      "unit": "tok/s",
      "note": "first request, 128 tokens",
      "n": 1
    },
    {
      "metric": "qwen3.5:2b_session2_warm_eval_tps_median",
      "value": 27.27,
      "unit": "tok/s",
      "note": "eval_count/eval_duration, 128 tokens, temp 0, seed 42; min 27.064, max 27.287",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session2_warm_eval_tps_min",
      "value": 27.064,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session2_warm_eval_tps_max",
      "value": 27.287,
      "unit": "tok/s",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session2_warm_prompt_tps_median",
      "value": 748.9,
      "unit": "tok/s",
      "note": "35-token prompt; min 601.912, max 765.697",
      "n": 3
    },
    {
      "metric": "qwen3.5:2b_session2_swap_used_before",
      "value": 3.09,
      "unit": "GiB",
      "note": "sysctl vm.swapusage before the cold load (desktop apps open)"
    },
    {
      "metric": "qwen3.5:2b_session2_swap_used_after_max",
      "value": 2.96,
      "unit": "GiB",
      "note": "max sysctl vm.swapusage across the runs",
      "n": 4
    },
    {
      "metric": "think_chat_omit_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_chat_false_eval_tokens",
      "value": 4,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=0, answer '391'",
      "n": 1
    },
    {
      "metric": "think_chat_true_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_chat_low_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_generate_omit_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_generate_false_eval_tokens",
      "value": 4,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=0, answer '391'",
      "n": 1
    },
    {
      "metric": "think_generate_true_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_generate_low_eval_tokens",
      "value": 375,
      "unit": "tokens",
      "note": "qwen3.5:4b, question '17*23', HTTP 200, thinking_chars=1022, answer '391'",
      "n": 1
    },
    {
      "metric": "think_default_is_on",
      "value": true,
      "unit": "",
      "note": "thinking field returned when `think` is omitted (chat and generate)"
    },
    {
      "metric": "think_low_string_on_qwen3.5",
      "value": "accepted (HTTP 200), same output as think=true",
      "unit": "",
      "note": "think:\"low\" produced the same 375 tokens and thinking as true on both endpoints"
    },
    {
      "metric": "cli_default_prints_thinking",
      "value": true,
      "unit": "",
      "note": "ollama run with default: stdout lines 38, wall 80 s",
      "n": 1
    },
    {
      "metric": "cli_default_wall_s",
      "value": 80,
      "unit": "s",
      "note": "wall time of the one-shot CLI call",
      "n": 1
    },
    {
      "metric": "cli_--think=false_prints_thinking",
      "value": false,
      "unit": "",
      "note": "ollama run with --think=false: stdout lines 1, wall 1 s",
      "n": 1
    },
    {
      "metric": "cli_--think=false_wall_s",
      "value": 1,
      "unit": "s",
      "note": "wall time of the one-shot CLI call",
      "n": 1
    },
    {
      "metric": "cli_--hidethinking_prints_thinking",
      "value": false,
      "unit": "",
      "note": "ollama run with --hidethinking: stdout lines 1, wall 63 s",
      "n": 1
    },
    {
      "metric": "cli_--hidethinking_wall_s",
      "value": 63,
      "unit": "s",
      "note": "wall time of the one-shot CLI call",
      "n": 1
    },
    {
      "metric": "cli_--think=low_prints_thinking",
      "value": true,
      "unit": "",
      "note": "ollama run with --think=low: stdout lines 45, wall 124 s",
      "n": 1
    },
    {
      "metric": "cli_--think=low_wall_s",
      "value": 124,
      "unit": "s",
      "note": "wall time of the one-shot CLI call",
      "n": 1
    },
    {
      "metric": "interactive_set_nothink_works",
      "value": true,
      "unit": "",
      "note": "pty-driven `ollama run qwen3.5:4b`: after /set nothink the answer printed with no Thinking block; after /set think it thought again",
      "n": 1
    },
    {
      "metric": "llamacpp_b11351_loads_ollama_qwen3.5_blob",
      "value": false,
      "unit": "",
      "note": "llama-bench b11351 on the Ollama qwen3.5:4b/2b blobs: key qwen35.rope.dimension_sections has wrong array length; expected 4, got 3"
    }
  ],
  "log": [
    ""
  ]
}
