)]}'
{"id":"openstack%2Fliberasurecode~431850","triplet_id":"openstack%2Fliberasurecode~master~I2f025aaee2d13cb1717a331e443e179ad5a13302","project":"openstack/liberasurecode","branch":"master","topic":"isa-l-build-gftables-once","hashtags":[],"change_id":"I2f025aaee2d13cb1717a331e443e179ad5a13302","subject":"ISA-L: Only calculate gf tables on init, not every encode","status":"MERGED","created":"2017-02-10 03:09:36.000000000","updated":"2017-03-29 06:49:41.000000000","submitted":"2017-03-29 06:49:40.000000000","submitter":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"total_comment_count":5,"unresolved_comment_count":0,"has_review_started":true,"meta_rev_id":"c5d87b277f49d3fd5c962dbaa9f8f407db388c90","_number":431850,"virtual_id_number":431850,"owner":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"all":[{"value":0,"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":0,"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":2,"date":"2017-03-29 06:49:40.000000000","_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},{"value":0,"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Fails","-1":"Doesn\u0027t seem to work"," 0":"No score","+1":"Works for me","+2":"Verified"},"description":"","default_value":0,"optional":true},"Code-Review":{"approved":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"all":[{"value":2,"date":"2017-03-29 06:39:36.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":0,"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},{"value":0,"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},{"value":2,"date":"2017-02-14 20:47:13.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-2":"Do not merge","-1":"This patch needs further work before it can be merged"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me (core reviewer)"},"description":"","default_value":0,"optional":true},"Workflow":{"approved":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"all":[{"value":1,"date":"2017-03-29 06:39:36.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"value":0,"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"value":0,"_account_id":3,"name":"Jenkins","username":"jenkins"},{"value":0,"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},{"value":0,"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},{"value":0,"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"}],"values":{"-1":"Work in progress"," 0":"Ready for reviews","+1":"Approved"},"description":"","default_value":0,"optional":true}},"removable_reviewers":[],"reviewers":{"REVIEWER":[{"_account_id":3,"name":"Jenkins","username":"jenkins"},{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},{"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2017-02-10 07:17:21.000000000","updated_by":{"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},"reviewer":{"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},"state":"REVIEWER"},{"updated":"2017-02-10 13:42:16.000000000","updated_by":{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},"reviewer":{"_account_id":8433,"name":"Kevin Greenan","email":"kmgreen2@gmail.com","username":"kmg"},"state":"REVIEWER"},{"updated":"2017-02-14 20:47:13.000000000","updated_by":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"reviewer":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"state":"REVIEWER"},{"updated":"2017-03-29 06:39:36.000000000","updated_by":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"reviewer":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"state":"REVIEWER"},{"updated":"2017-03-29 06:49:40.000000000","updated_by":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"reviewer":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"state":"REVIEWER"}],"messages":[{"id":"0f9b8def032807232b2bb59820f85e4eb395a465","author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"date":"2017-02-10 03:09:36.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"a667faf8b9d5092154ebd91bab1c9d0a283b36b3","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-02-10 03:13:08.000000000","message":"Patch Set 1: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/50/431850/1/check/gate-liberasurecode-unit/6779b40/ : SUCCESS in 3m 07s","accounts_in_message":[],"_revision_number":1},{"id":"0501b9c65cf82ab31a6b36664d97f686b6f5f513","author":{"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},"date":"2017-02-10 07:17:21.000000000","message":"Patch Set 1:\n\n(1 comment)\n\nThanks Daniel! Without knowing much about how this code is run, the changes look sane to me. Would it also make sense for isa_l_reconstruct and isa_l_decode? They seem to be doing much the same thing but I\u0027m not sure.","accounts_in_message":[],"_revision_number":1},{"id":"ad55d122a2032475f70dcac3edc3eb1f18c6c2bc","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-02-10 17:44:28.000000000","message":"Patch Set 1: Code-Review-1\n\n(3 comments)\n\nVerified that tests still pass, but I think if we hit an OOM error allocating the new table, we may leak memory and make the situation worse :-(\n\nI\u0027ll try to get some benchmarks going -- I wanna really *see* the performance benefits!","accounts_in_message":[],"_revision_number":1},{"id":"2d6d850bf7a81548ce1716d3ff828eb1186e5f44","author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"date":"2017-02-10 21:24:44.000000000","message":"Patch Set 1:\n\n(1 comment)\n\n\u003e (3 comments)\n \u003e \n \u003e Verified that tests still pass, but I think if we hit an OOM error\n \u003e allocating the new table, we may leak memory and make the situation\n \u003e worse :-(\n \u003e \n \u003e I\u0027ll try to get some benchmarks going -- I wanna really *see* the\n \u003e performance benefits!\n\nHi Tim,\n\nThanks for the review, I\u0027ll do a respin fixing up the error path in isa_l_common_init when I get back to work on Monday.\n\nI have been benchmarking with a a hacked up version of pyeclib\u0027s encode script. The operative part is this tight loop:\n\ntimeAverage\u003d0.0\ncount\u003d1000000\nfor x in xrange(1, count):\n    # start timer\n    start \u003d time.clock()\n\n    # encode\n    fragments \u003d ec_driver.encode(whole_file_str)\n\n    # stop timer\n    end \u003d time.clock()\n    timeAverage\u003dtimeAverage+(end-start)\n\nHope this helps.","accounts_in_message":[],"_revision_number":1},{"id":"a36aa5638ee1ba91054f227686940a26ed4ca867","author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"date":"2017-02-12 22:40:43.000000000","message":"Uploaded patch set 2.","accounts_in_message":[],"_revision_number":2},{"id":"bcb636ffedb44e87e0c2a457864e00dfd7e163da","author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"date":"2017-02-12 22:43:38.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"1ff346be60f734443942df155733d8fed0f9cac6","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-02-12 22:47:00.000000000","message":"Patch Set 3: Verified+1\n\nBuild succeeded (check pipeline).\n\n- gate-liberasurecode-unit http://logs.openstack.org/50/431850/3/check/gate-liberasurecode-unit/c613b91/ : SUCCESS in 3m 08s","accounts_in_message":[],"_revision_number":3},{"id":"87ad82a1fd5a3a43eac4772a26c1a17427336507","author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"date":"2017-02-14 20:47:13.000000000","message":"Patch Set 3: Code-Review+2\n\nNice! Quick, not-very-scientific benchmarking gives me before:\n\n EC_BACKEND_ISA_L_RS_VAND            Encode:   277.09 MiB/s  Decode:    95.05 MiB/s (chunk_size \u003d 1024)\n EC_BACKEND_ISA_L_RS_VAND            Encode:   928.70 MiB/s  Decode:   352.31 MiB/s (chunk_size \u003d 4096)\n EC_BACKEND_ISA_L_RS_VAND            Encode:  2908.79 MiB/s  Decode:  2155.14 MiB/s (chunk_size \u003d 65536)\n EC_BACKEND_ISA_L_RS_VAND            Encode:  1677.41 MiB/s  Decode:  1642.36 MiB/s (chunk_size \u003d 1048576)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:   272.87 MiB/s  Decode:    93.15 MiB/s (chunk_size \u003d 1024)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:   910.37 MiB/s  Decode:   342.57 MiB/s (chunk_size \u003d 4096)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:  2856.95 MiB/s  Decode:  2114.95 MiB/s (chunk_size \u003d 65536)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:  1669.36 MiB/s  Decode:  1654.43 MiB/s (chunk_size \u003d 1048576)\n\nAnd after:\n\n EC_BACKEND_ISA_L_RS_VAND            Encode:   325.40 MiB/s  Decode:    95.85 MiB/s (chunk_size \u003d 1024)\n EC_BACKEND_ISA_L_RS_VAND            Encode:  1001.91 MiB/s  Decode:   343.01 MiB/s (chunk_size \u003d 4096)\n EC_BACKEND_ISA_L_RS_VAND            Encode:  2917.88 MiB/s  Decode:  2124.32 MiB/s (chunk_size \u003d 65536)\n EC_BACKEND_ISA_L_RS_VAND            Encode:  1667.34 MiB/s  Decode:  1662.29 MiB/s (chunk_size \u003d 1048576)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:   326.86 MiB/s  Decode:    96.26 MiB/s (chunk_size \u003d 1024)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:  1029.08 MiB/s  Decode:   354.97 MiB/s (chunk_size \u003d 4096)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:  2837.63 MiB/s  Decode:  2030.04 MiB/s (chunk_size \u003d 65536)\n EC_BACKEND_ISA_L_RS_CAUCHY          Encode:  1606.85 MiB/s  Decode:  1584.02 MiB/s (chunk_size \u003d 1048576)\n\nNote that the improvements diminish as chunk size goes up -- that seems to make sense, yeah?\n\nAre you interested in doing something similar for the decode tables? Alternatively, I think I could get a patch together sometime next week...","accounts_in_message":[],"_revision_number":3},{"id":"760bfbcc6631173412d1ca707ec426c7af75c866","author":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"date":"2017-02-15 00:21:58.000000000","message":"Patch Set 3:\n\nYes, it makes sense that the gains tail off with chunk size. (This came out of interactions with a client who wanted to benchmark with 4k objects, hence my concern with small-object overhead.)\n\n \u003e Are you interested in doing something similar for the decode\n \u003e tables? Alternatively, I think I could get a patch together\n \u003e sometime next week...\n\nI am happy to have a look. I think it will only make sense to cache for the case where there are no missing fragments.","accounts_in_message":[],"_revision_number":3},{"id":"17cafe65c23ce9c09da1bf50363bf814f706b4a4","author":{"_account_id":4608,"name":"Kota Tsuyuzaki","email":"bloodeagle40234@gmail.com","username":"tsuyuzaki-kota"},"date":"2017-03-29 06:39:36.000000000","message":"Patch Set 3: Code-Review+2 Workflow+1","accounts_in_message":[],"_revision_number":3},{"id":"12879507c4f24da4f441eb9ba9c3e4ad81912936","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-03-29 06:39:47.000000000","message":"Patch Set 3: -Verified\n\nStarting gate jobs.\nhttp://status.openstack.org/zuul/","accounts_in_message":[],"_revision_number":3},{"id":"c7ced08dd8cfa96a39fe02fba2e4e43148241a88","author":{"_account_id":3,"name":"Jenkins","username":"jenkins"},"date":"2017-03-29 06:49:40.000000000","message":"Patch Set 3: Verified+2\n\nBuild succeeded (gate pipeline).\n\n- gate-liberasurecode-unit-ubuntu-xenial http://logs.openstack.org/50/431850/3/gate/gate-liberasurecode-unit-ubuntu-xenial/1b25407/ : SUCCESS in 9m 39s","accounts_in_message":[],"_revision_number":3},{"id":"f137309b7fec64197f1c674497de4ff307e1dda2","date":"2017-03-29 06:49:41.000000000","message":"Change has been successfully merged into the git repository by Jenkins","accounts_in_message":[],"_revision_number":3}],"current_revision_number":3,"current_revision":"90679884efa7bc277ced354032ca655e1e99faa2","revisions":{"fb0999768e8db66cf7642feade243f6024ae7496":{"kind":"REWORK","_number":1,"created":"2017-02-10 03:09:36.000000000","uploader":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"ref":"refs/changes/50/431850/1","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/50/431850/1","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/1"}}},"commit":{"parents":[{"commit":"10e096fe097a489eec41bad120f5b5e52fa4b61c","subject":"ISA-L: free matrix on exit","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/10e096fe097a489eec41bad120f5b5e52fa4b61c"}]}],"author":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-10 02:55:15.000000000","tz":660},"committer":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-10 03:03:37.000000000","tz":660},"subject":"ISA-L: Only calculate gf tables on init, not every encode","message":"ISA-L: Only calculate gf tables on init, not every encode\n\nCurrently, the Galois Field multiplication tables are recalcuated\nevery time an encode is done. This is wasteful, as they are fixed\nby k and m, which is set on init.\n\nCalculate the tables only once, on init.\n\nThis trades off a little bit of per-context memory and creation\ntime for measurably faster encodes when using the same context.\n\nOn powerpc64le, when repeatedly encoding a 4kB file with pyeclib,\nthis increases the measured speed by over 10%.\n\nChange-Id: I2f025aaee2d13cb1717a331e443e179ad5a13302\nSigned-off-by: Daniel Axtens \u003cdja@axtens.net\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/fb0999768e8db66cf7642feade243f6024ae7496"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/fb0999768e8db66cf7642feade243f6024ae7496"}]},"branch":"refs/heads/master"},"0ce30c9e0fbc8a093ce3eff10bb236e8f3be75d5":{"kind":"REWORK","_number":2,"created":"2017-02-12 22:40:43.000000000","uploader":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"ref":"refs/changes/50/431850/2","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/50/431850/2","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/2"}}},"commit":{"parents":[{"commit":"10e096fe097a489eec41bad120f5b5e52fa4b61c","subject":"ISA-L: free matrix on exit","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/10e096fe097a489eec41bad120f5b5e52fa4b61c"}]}],"author":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-10 02:55:15.000000000","tz":660},"committer":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-12 22:37:22.000000000","tz":660},"subject":"ISA-L: Only calculate gf tables on init, not every encode","message":"ISA-L: Only calculate gf tables on init, not every encode\n\nCurrently, the Galois Field multiplication tables are recalcuated\nevery time an encode is done. This is wasteful, as they are fixed\nby k and m, which is set on init.\n\nCalculate the tables only once, on init.\n\nThis trades off a little bit of per-context memory and creation\ntime for measurably faster encodes when using the same context.\n\nOn powerpc64le, when repeatedly encoding a 4kB file with pyeclib,\nthis increases the measured speed by over 10%.\n\nChange-Id: I2f025aaee2d13cb1717a331e443e179ad5a13302\nSigned-off-by: Daniel Axtens \u003cdja@axtens.net\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/0ce30c9e0fbc8a093ce3eff10bb236e8f3be75d5"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/0ce30c9e0fbc8a093ce3eff10bb236e8f3be75d5"}]},"branch":"refs/heads/master"},"90679884efa7bc277ced354032ca655e1e99faa2":{"kind":"REWORK","_number":3,"created":"2017-02-12 22:43:38.000000000","uploader":{"_account_id":25109,"name":"Daniel Axtens","email":"dja@axtens.net","username":"dja"},"ref":"refs/changes/50/431850/3","fetch":{"anonymous http":{"url":"https://review.opendev.org/openstack/liberasurecode","ref":"refs/changes/50/431850/3","commands":{"Checkout":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.opendev.org/openstack/liberasurecode refs/changes/50/431850/3"}}},"commit":{"parents":[{"commit":"10e096fe097a489eec41bad120f5b5e52fa4b61c","subject":"ISA-L: free matrix on exit","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/10e096fe097a489eec41bad120f5b5e52fa4b61c"}]}],"author":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-10 02:55:15.000000000","tz":660},"committer":{"name":"Daniel Axtens","email":"dja@axtens.net","date":"2017-02-12 22:43:24.000000000","tz":660},"subject":"ISA-L: Only calculate gf tables on init, not every encode","message":"ISA-L: Only calculate gf tables on init, not every encode\n\nCurrently, the Galois Field multiplication tables are recalcuated\nevery time an encode is done. This is wasteful, as they are fixed\nby k and m, which is set on init.\n\nCalculate the tables only once, on init.\n\nThis trades off a little bit of per-context memory and creation\ntime for measurably faster encodes when using the same context.\n\nOn powerpc64le, when repeatedly encoding a 4kB file with pyeclib,\nthis increases the measured speed by over 10%.\n\nChange-Id: I2f025aaee2d13cb1717a331e443e179ad5a13302\nSigned-off-by: Daniel Axtens \u003cdja@axtens.net\u003e\n","web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/90679884efa7bc277ced354032ca655e1e99faa2"}],"resolve_conflicts_web_links":[{"name":"gitea","tooltip":"Open in GitWeb","url":"https://opendev.org/openstack/liberasurecode/commit/90679884efa7bc277ced354032ca655e1e99faa2"}]},"branch":"refs/heads/master"}},"requirements":[],"submit_records":[],"submit_requirements":[]}
