)]}'
{
  "commit": "c8323b7f28f9d16423208e3d60a92c71f05df28c",
  "tree": "adcccb1782f5af54d26906fa3b2e92f1d8582248",
  "parents": [
    "fd80c1d846e1580903fe7d09822c81bec799c5c4"
  ],
  "author": {
    "name": "Andreas Molzer",
    "email": "andreas.molzer@gmx.de",
    "time": "Sat May 14 16:00:25 2022"
  },
  "committer": {
    "name": "Andreas Molzer",
    "email": "andreas.molzer@gmx.de",
    "time": "Sat May 14 16:55:20 2022"
  },
  "message": "Change parallelization strategy in rayon\n\nIntends to address the issue of effectively serialized sort, where all\ntasks end up being executed on the main thread instead of being\ndistributed into other workers.\n\nWe had neglected that most work is scheduled in sync (apppend_row such\nas in decoder.rs:903 instead of apppend_rows). This meant most were\nexecuted with an immediate strategy.\n\nThe change pushes all items into a bounded task queue that is emptied\nand actively worked on when it reaches a capacity maximum, as well as\nwhen any component result is requested. This is in contrast to\nstd::multithreading where items are worked on while decoding is in\nprogress but task queueing itself has more overhead.\n\ndecode a 512x512 JPEG   time:   [1.7317 ms 1.7352 ms 1.7388 ms]\n                        change: [-22.895% -22.646% -22.351%] (p \u003d 0.00 \u003c 0.05)\n                        Performance has improved.\nFound 6 outliers among 100 measurements (6.00%)\n  1 (1.00%) low mild\n  4 (4.00%) high mild\n  1 (1.00%) high severe\n\ndecode a 512x512 progressive JPEG\n                        time:   [4.7252 ms 4.7364 ms 4.7491 ms]\n                        change: [-15.641% -15.349% -15.052%] (p \u003d 0.00 \u003c 0.05)\n                        Performance has improved.\nFound 3 outliers among 100 measurements (3.00%)\n  1 (1.00%) high mild\n  2 (2.00%) high severe\n\ndecode a 512x512 grayscale JPEG\n                        time:   [873.48 us 877.71 us 882.83 us]\n                        change: [-11.470% -10.764% -10.041%] (p \u003d 0.00 \u003c 0.05)\n                        Performance has improved.\nFound 13 outliers among 100 measurements (13.00%)\n  2 (2.00%) low mild\n  9 (9.00%) high mild\n  2 (2.00%) high severe\n\nextract metadata from an image\n                        time:   [1.1033 us 1.1066 us 1.1099 us]\n                        change: [-11.608% -9.8026% -8.3965%] (p \u003d 0.00 \u003c 0.05)\n                        Performance has improved.\nFound 4 outliers among 100 measurements (4.00%)\n  2 (2.00%) low severe\n  1 (1.00%) low mild\n  1 (1.00%) high mild\n\nBenchmarking decode a 3072x2048 RGB Lossless JPEG: Warming up for 3.0000 s\nWarning: Unable to complete 100 samples in 5.0s. You may wish to increase target time to 36.6s, or reduce sample count to 10.\ndecode a 3072x2048 RGB Lossless JPEG\n                        time:   [363.07 ms 363.66 ms 364.27 ms]\n                        change: [+0.0997% +0.3692% +0.6323%] (p \u003d 0.01 \u003c 0.05)\n                        Change within noise threshold.\nFound 6 outliers among 100 measurements (6.00%)\n  5 (5.00%) high mild\n  1 (1.00%) high severe\n\n     Running unittests (target/release/deps/large_image-0e61f2c2f07410bd)\nGnuplot not found, using plotters backend\ndecode a 2268x1512 JPEG time:   [28.755 ms 28.879 ms 29.021 ms]\n                        change: [-5.7714% -4.9308% -4.0969%] (p \u003d 0.00 \u003c 0.05)\n                        Performance has improved.\nFound 7 outliers among 100 measurements (7.00%)\n  3 (3.00%) high mild\n  4 (4.00%) high severe\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "d48a6d89ee9b25fb1a2b81d5231aa55264243d16",
      "old_mode": 33188,
      "old_path": "src/worker/rayon.rs",
      "new_id": "460872c60212403651569ebb89511f1a1d1052af",
      "new_mode": 33188,
      "new_path": "src/worker/rayon.rs"
    }
  ]
}
