Eine schnelle, speichereffiziente Trie-Implementierung für React Native. Verwendet Tessels HAT-Versuch.
npm install react-native-fast-trie
yarn add react-native-fast-trie
Es werden Benchmarks im Vergleich zu einer häufig verwendeten JS-Implementierung (trie-typed) auf realen Geräten erstellt, die im Release-Modus erstellt wurden. Sie können das Beispielprojekt auf Ihrem Gerät erstellen, um diese Ergebnisse zu reproduzieren.
Die Tests sind wie folgt:
Gerät | Einzelne Wortliste | Batch-Einfügung | Alle Wortlisten | Enthält | Finden |
---|---|---|---|---|---|
Pixel 5 | 4,64x schneller | 16,86x schneller | 7,76x schneller | 2,94x schneller | 24,63x schneller |
Pixel 3a | 3,26x schneller | 14,67x schneller | 5,54x schneller | 3,06x schneller | 26,23x schneller |
Galaxy A10e | 2,94x schneller | 9,83x schneller | 4,84x schneller | 3,95x schneller | 11,47x schneller |
iPhone 15 Pro Max | 3,78x schneller | 10,33x schneller | 5,13x schneller | 3,43x schneller | 23,83x schneller |
iPhone 11 Pro Max | 4,65x schneller | 13,12x schneller | 5,21x schneller | 3,35x schneller | 23,79x schneller |
iPhone 7 | 3,58x schneller | 12,03x schneller | 5,65x schneller | 3,46x schneller | 26,86x schneller |
Screenshots dieser Benchmarks finden Sie im Benchmarks-Ordner.
// index.js
import { FastTrie } from 'react-native-fast-trie' ;
const trie = new FastTrie ( ) ;
console . log ( trie . contains ( 'test' ) ) ; // false
trie . insert ( 'test' ) ;
console . log ( trie . contains ( 'test' ) ) ; // true
console . log ( trie . find ( 'te' ) ) ; // ['test']
trie . batchInsert ( [ 'test2' , 'test3' ] ) ;
// Limit to only 2 results
console . log ( trie . find ( 'te' , 2 ) ) ; // ['test2', 'test3']
trie . delete ( 'test2' ) ;
console . log ( trie . contains ( 'test2' ) ) ; // false
FastTrie ist eine leistungsstarke Trie-Implementierung, die für React Native-Anwendungen entwickelt wurde. Es bietet effiziente Operationen zum Einfügen von Elementen, zum Überprüfen ihrer Existenz und zum Suchen von Elementen mit einem bestimmten Präfix. Die Implementierung bietet Anpassungsoptionen, um ein Gleichgewicht zwischen Geschwindigkeit und Speichernutzung herzustellen.
FastTrieOptions
TypDieser Typ ermöglicht die Konfiguration der FastTrie-Instanz.
burstThreshold?: number
Gibt die maximale Größe eines Array-Hash-Knotens an, bevor ein Burst auftritt. Für exakte Suchen wird ein höherer Wert (z. B. 16.384) empfohlen, während der Standardwert 1024 für Präfixsuchen optimiert ist.
maxLoadFactor?: number
Bestimmt den Lastfaktor des Versuchs. Ein niedrigerer Wert erhöht die Geschwindigkeit, während ein höherer Wert die Speichernutzung verringert. Der Standardwert ist 8,0.
FastTrie
Klasse Erstellt eine neue Instanz von FastTrie.
Parameter:
options: FastTrieOptions
(optional)burstThreshold
und maxLoadFactor
.Beispiel:
const trie = new FastTrie ( { burstThreshold : 2048 , maxLoadFactor : 10.0 } ) ;
insert(item: string): void
Fügt eine Zeichenfolge in den Versuch ein.
trie . insert ( 'example' ) ;
batchInsert(items: string[]): void
Fügt in einem einzigen Vorgang mehrere Zeichenfolgen in den Trie ein. Diese Methode ist für Masseneinfügungen optimiert und effizienter als das einzelne Einfügen von Elementen.
trie . batchInsert ( [ 'apple' , 'apricot' , 'banana' ] ) ;
contains(item: string): boolean
Überprüft, ob im Versuch eine Zeichenfolge vorhanden ist.
const isPresent = trie . contains ( 'example' ) ;
find(prefix: string, maxResults?: number): boolean
Sucht alle Zeichenfolgen im Versuch, die mit dem angegebenen Präfix beginnen.
const results = trie . find ( 'ex' , 10 ) ;
delete(item: string): void
Löscht eine Zeichenfolge, wenn sie im Versuch vorhanden ist
trie . delete ( 'apple' ) ;
Lesen Sie den Beitragsleitfaden, um zu erfahren, wie Sie zum Repository und zum Entwicklungsworkflow beitragen können.
MIT
Erstellt mit der Create-React-Native-Library