Implementasi Trie yang cepat dan hemat memori untuk React Native. Menggunakan HAT-trie Tessel.
npm install react-native-fast-trie
yarn add react-native-fast-trie
Tolok ukur diambil dibandingkan dengan implementasi JS yang umum digunakan (diketik trie) pada perangkat nyata yang dibangun dalam mode rilis. Anda dapat membuat proyek contoh di perangkat Anda untuk mereproduksi hasil ini.
Tesnya adalah sebagai berikut:
Perangkat | Daftar Kata Tunggal | Sisipan Batch | Semua Daftar Kata | Berisi | Menemukan |
---|---|---|---|---|---|
Piksel 5 | 4,64x lebih cepat | 16,86x lebih cepat | 7,76x lebih cepat | 2,94x lebih cepat | 24,63x lebih cepat |
Piksel 3a | 3,26x lebih cepat | 14,67x lebih cepat | 5,54x lebih cepat | 3,06x lebih cepat | 26,23x lebih cepat |
Galaksi A10e | 2,94x lebih cepat | 9,83x lebih cepat | 4,84x lebih cepat | 3,95x lebih cepat | 11,47x lebih cepat |
iPhone 15 Pro Maks | 3,78x lebih cepat | 10,33x lebih cepat | 5,13x lebih cepat | 3,43x lebih cepat | 23,83x lebih cepat |
iPhone 11 Pro Maks | 4,65x lebih cepat | 13,12x lebih cepat | 5,21x lebih cepat | 3,35x lebih cepat | 23,79x lebih cepat |
iPhone 7 | 3,58x lebih cepat | 12,03x lebih cepat | 5,65x lebih cepat | 3,46x lebih cepat | 26,86x lebih cepat |
Tangkapan layar dari benchmark ini dapat ditemukan di folder benchmarks.
// 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 adalah implementasi trie berkinerja tinggi yang dirancang untuk aplikasi React Native. Ia menawarkan operasi yang efisien untuk memasukkan elemen, memeriksa keberadaannya, dan menemukan elemen dengan awalan tertentu. Implementasinya memberikan opsi penyesuaian untuk menyeimbangkan antara kecepatan dan penggunaan memori.
FastTrieOptions
Jenis ini memungkinkan konfigurasi instance FastTrie.
burstThreshold?: number
Menentukan ukuran maksimum node hash array sebelum terjadi ledakan. Nilai yang lebih tinggi (misalnya, 16.384) direkomendasikan untuk pencarian tepat, sedangkan nilai default 1024 dioptimalkan untuk pencarian awalan.
maxLoadFactor?: number
Menentukan faktor beban percobaan. Nilai yang lebih rendah akan meningkatkan kecepatan, sedangkan nilai yang lebih tinggi akan mengurangi penggunaan memori. Nilai defaultnya adalah 8.0.
FastTrie
Membuat instance baru dari FastTrie.
Parameter:
options: FastTrieOptions
(opsional)burstThreshold
dan maxLoadFactor
.Contoh:
const trie = new FastTrie ( { burstThreshold : 2048 , maxLoadFactor : 10.0 } ) ;
insert(item: string): void
Menyisipkan string ke dalam trie.
trie . insert ( 'example' ) ;
batchInsert(items: string[]): void
Menyisipkan beberapa string ke dalam trie dalam satu operasi. Metode ini dioptimalkan untuk penyisipan massal dan lebih efisien daripada memasukkan item satu per satu.
trie . batchInsert ( [ 'apple' , 'apricot' , 'banana' ] ) ;
contains(item: string): boolean
Memeriksa apakah ada string di percobaan.
const isPresent = trie . contains ( 'example' ) ;
find(prefix: string, maxResults?: number): boolean
Menemukan semua string dalam trie yang dimulai dengan awalan yang diberikan.
const results = trie . find ( 'ex' , 10 ) ;
delete(item: string): void
Menghapus string jika ada di percobaan
trie . delete ( 'apple' ) ;
Lihat panduan berkontribusi untuk mempelajari cara berkontribusi pada repositori dan alur kerja pengembangan.
MIT
Dibuat dengan perpustakaan create-react-native