From d3a103300853880ff1d2df96862e9a68b59b13eb Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Mon, 4 Jan 2021 12:35:33 -0700 Subject: [PATCH 1/2] Switch to faster PRNG --- app/assets/javascripts/diffs/utils/uuids.js | 4 ++-- jest.config.base.js | 2 +- package.json | 2 +- yarn.lock | 10 +++++----- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/diffs/utils/uuids.js b/app/assets/javascripts/diffs/utils/uuids.js index 12448350e62e8b..1fe5f9f6499a43 100644 --- a/app/assets/javascripts/diffs/utils/uuids.js +++ b/app/assets/javascripts/diffs/utils/uuids.js @@ -11,7 +11,7 @@ * @typedef {String} UUIDv4 */ -import MersenneTwister from 'mersenne-twister'; +import { MersenneTwister } from 'fast-mersenne-twister'; import stringHash from 'string-hash'; import { isString } from 'lodash'; import { v4 } from 'uuid'; @@ -49,7 +49,7 @@ function randomValuesForUuid(prng) { const buffer = new ArrayBuffer(4); const view = new DataView(buffer); - view.setUint32(0, prng.random_int()); + view.setUint32(0, prng.randomNumber()); randomValues.push(view.getUint8(0), view.getUint8(1), view.getUint8(2), view.getUint8(3)); } diff --git a/jest.config.base.js b/jest.config.base.js index ffd365b9eaa34b..3ac6aa9091c82c 100644 --- a/jest.config.base.js +++ b/jest.config.base.js @@ -91,7 +91,7 @@ module.exports = (path) => { '^.+\\.(md|zip|png)$': 'jest-raw-loader', }, transformIgnorePatterns: [ - 'node_modules/(?!(@gitlab/ui|bootstrap-vue|three|monaco-editor|monaco-yaml)/)', + 'node_modules/(?!(@gitlab/ui|bootstrap-vue|three|monaco-editor|monaco-yaml|fast-mersenne-twister)/)', ], timers: 'fake', testEnvironment: '/spec/frontend/environment.js', diff --git a/package.json b/package.json index b33944562f7af3..9dcdd5690961bb 100644 --- a/package.json +++ b/package.json @@ -87,6 +87,7 @@ "emoji-regex": "^7.0.3", "emoji-unicode-version": "^0.2.1", "exports-loader": "^0.7.0", + "fast-mersenne-twister": "1.0.2", "file-loader": "^5.1.0", "font-awesome": "4.7.0", "fuzzaldrin-plus": "^0.6.0", @@ -110,7 +111,6 @@ "marked": "^0.3.12", "mathjax": "3", "mermaid": "^8.5.2", - "mersenne-twister": "1.1.0", "minimatch": "^3.0.4", "miragejs": "^0.1.40", "mock-apollo-client": "^0.5.0", diff --git a/yarn.lock b/yarn.lock index 6eb8bc1ec735f1..eac1d3462269ef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5009,6 +5009,11 @@ fast-levenshtein@~2.0.6: resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= +fast-mersenne-twister@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/fast-mersenne-twister/-/fast-mersenne-twister-1.0.2.tgz#5ead7caf3ace592a5789d11767732bd81cbaaa56" + integrity sha512-IaClPxsoBu3MxGpcURyjV8otT5Bj4ARoK0KBCJGnEVnD1A/qclL5eIeYiUuwG/WWJPxL1jlK61HTm2T6SBmvBQ== + fault@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fault/-/fault-1.0.2.tgz#c3d0fec202f172a3a4d414042ad2bb5e2a3ffbaa" @@ -8190,11 +8195,6 @@ mermaid@^8.5.2: moment-mini "^2.22.1" scope-css "^1.2.1" -mersenne-twister@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/mersenne-twister/-/mersenne-twister-1.1.0.tgz#f916618ee43d7179efcf641bec4531eb9670978a" - integrity sha1-+RZhjuQ9cXnvz2Qb7EUx65Zwl4o= - methods@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" -- GitLab From 2a28ff9dd801af3b66442303246208cf55a85ea5 Mon Sep 17 00:00:00 2001 From: Thomas Randolph Date: Tue, 5 Jan 2021 02:32:53 -0700 Subject: [PATCH 2/2] Add changelog for swapping the Mersenne Twister in Diffs --- changelogs/unreleased/maintenance-fast-mersenne-twister.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 changelogs/unreleased/maintenance-fast-mersenne-twister.yml diff --git a/changelogs/unreleased/maintenance-fast-mersenne-twister.yml b/changelogs/unreleased/maintenance-fast-mersenne-twister.yml new file mode 100644 index 00000000000000..1fb389e333b10b --- /dev/null +++ b/changelogs/unreleased/maintenance-fast-mersenne-twister.yml @@ -0,0 +1,5 @@ +--- +title: Switch to 2x faster PRNG +merge_request: 50811 +author: +type: performance -- GitLab