From 8a381e34333f406b7028757e9c117b6c37922f61 Mon Sep 17 00:00:00 2001 From: Michele Riva Date: Mon, 7 Oct 2024 15:02:40 +0200 Subject: [PATCH] perf: rewrites 'getCommonPrefix' in radix tree --- packages/orama/src/trees/radix.ts | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/packages/orama/src/trees/radix.ts b/packages/orama/src/trees/radix.ts index 04ae48ac..b3357587 100644 --- a/packages/orama/src/trees/radix.ts +++ b/packages/orama/src/trees/radix.ts @@ -344,16 +344,13 @@ export class RadixNode { } private static getCommonPrefix(a: string, b: string): string { - let commonPrefix = '' const len = Math.min(a.length, b.length) - for (let i = 0; i < len; i++) { - if (a[i] !== b[i]) { - return commonPrefix - } - commonPrefix += a[i] + let i = 0 + while (i < len && a.charCodeAt(i) === b.charCodeAt(i)) { + i++ } - return commonPrefix - } + return a.slice(0, i) + } public toJSON(): object { return {