diff --git a/app/assets/javascripts/diffs/utils/uuids.js b/app/assets/javascripts/diffs/utils/uuids.js index 12448350e62e8b2b32fb78e9ce4374dc175baed0..1fe5f9f6499a4367945c2b0dbc1269791e6d6731 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/changelogs/unreleased/maintenance-fast-mersenne-twister.yml b/changelogs/unreleased/maintenance-fast-mersenne-twister.yml new file mode 100644 index 0000000000000000000000000000000000000000..1fb389e333b10bfd0e6993270f641bef2a13853a --- /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 diff --git a/jest.config.base.js b/jest.config.base.js index ffd365b9eaa34b531a5655f6dc681ba32dee2dc7..3ac6aa9091c82c735d55068e5efaf721a08bdc9a 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 b33944562f7af3a22c4f8c5298ba8dfc45351dbd..9dcdd5690961bbcf321d149d10a28d7a9d73060e 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 6eb8bc1ec735f16b1ef735c0ee2886f9d7ddf1be..eac1d3462269ef1767a6b3b41223918d5b31359a 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"