تطبيق Trie سريع وموفر للذاكرة لـ React Native. يستخدم قبعة تيسيل-تري.
npm install react-native-fast-trie
yarn add react-native-fast-trie
يتم أخذ المعايير مقارنة بتطبيق JS الشائع الاستخدام (الكتابة الثلاثية) على الأجهزة الحقيقية المضمنة في وضع الإصدار. يمكنك إنشاء المشروع النموذجي على جهازك لإعادة إنتاج هذه النتائج.
الاختبارات هي كما يلي:
جهاز | قائمة الكلمات واحدة | إدراج دفعة | جميع قوائم الكلمات | يتضمن | يجد |
---|---|---|---|---|---|
بكسل 5 | أسرع بـ 4.64 مرة | أسرع بـ 16.86 مرة | أسرع بـ 7.76 مرة | أسرع بـ 2.94 مرة | أسرع بـ 24.63 مرة |
بكسل 3 أ | أسرع بـ 3.26 مرة | أسرع بـ 14.67 مرة | أسرع بـ 5.54 مرة | 3.06x أسرع | أسرع بـ 26.23 مرة |
جالاكسي ايه 10 إي | أسرع بـ 2.94 مرة | 9.83x أسرع | أسرع بـ 4.84 مرة | أسرع بـ 3.95 مرة | أسرع بـ 11.47 مرة |
ايفون 15 برو ماكس | 3.78x أسرع | 10.33x أسرع | أسرع بـ 5.13 مرة | أسرع بـ 3.43 مرة | أسرع بـ 23.83 مرة |
ايفون 11 برو ماكس | أسرع بـ 4.65 مرة | أسرع بـ 13.12 مرة | 5.21x أسرع | أسرع بـ 3.35 مرة | أسرع بـ 23.79 مرة |
ايفون 7 | 3.58x أسرع | أسرع بـ 12.03 مرة | أسرع بـ 5.65 مرة | أسرع بـ 3.46 مرة | أسرع بـ 26.86 مرة |
يمكن العثور على لقطات شاشة لهذه المعايير في مجلد المعايير.
// 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 عبارة عن تطبيق تجريبي عالي الأداء مصمم لتطبيقات React Native. فهو يوفر عمليات فعالة لإدراج العناصر، والتحقق من وجودها، والعثور على العناصر ذات بادئة محددة. يوفر التنفيذ خيارات التخصيص لتحقيق التوازن بين السرعة واستخدام الذاكرة.
FastTrieOptions
يسمح هذا النوع بتكوين مثيل FastTrie.
burstThreshold?: number
يحدد الحد الأقصى لحجم عقدة تجزئة الصفيف قبل حدوث الاندفاع. يوصى باستخدام قيمة أعلى (على سبيل المثال، 16,384) لعمليات البحث الدقيقة، بينما تم تحسين القيمة الافتراضية 1024 لعمليات البحث عن البادئات.
maxLoadFactor?: number
يحدد عامل الحمولة للمحاولة. تعمل القيمة الأقل على زيادة السرعة، بينما تقلل القيمة الأعلى من استخدام الذاكرة. القيمة الافتراضية هي 8.0.
FastTrie
إنشاء مثيل جديد لـ FastTrie.
حدود:
options: FastTrieOptions
(اختياري)burstThreshold
و maxLoadFactor
.مثال:
const trie = new FastTrie ( { burstThreshold : 2048 , maxLoadFactor : 10.0 } ) ;
insert(item: string): void
إدراج سلسلة في المحاولة.
trie . insert ( 'example' ) ;
batchInsert(items: string[]): void
إدراج سلاسل متعددة في المحاولة في عملية واحدة. تم تحسين هذه الطريقة لعمليات الإدراج المجمعة وهي أكثر فعالية من إدراج العناصر بشكل فردي.
trie . batchInsert ( [ 'apple' , 'apricot' , 'banana' ] ) ;
contains(item: string): boolean
يتحقق من وجود سلسلة في المحاولة.
const isPresent = trie . contains ( 'example' ) ;
find(prefix: string, maxResults?: number): boolean
يبحث عن جميع السلاسل في المحاولة التي تبدأ بالبادئة المحددة.
const results = trie . find ( 'ex' , 10 ) ;
delete(item: string): void
يحذف سلسلة إذا كانت موجودة في المحاولة
trie . delete ( 'apple' ) ;
راجع دليل المساهمة لمعرفة كيفية المساهمة في المستودع وسير عمل التطوير.
معهد ماساتشوستس للتكنولوجيا
تم إنشاؤه باستخدام مكتبة رد الفعل الأصلية