שימוש ב-buffer ב-JS
-
תביא קוד פשוט לדוגמא.
יש דרך למהר את זה?
var arr = [] for( var i =0; i<400000; i++) { arr.push('aa'+i) } for( var i =0; i<400000; i++) { for( var nn =0; nn<100; nn++) if( arr[i] == 'asabb'+i) alert() }
פורסם במקור בפורום CODE613 ב29/02/2016 00:54 (+02:00)
-
@mat
תביא קוד פשוט לדוגמא.יש דרך למהר את זה?
var arr = [] for( var i =0; i<400000; i++) { arr.push('aa'+i) } for( var i =0; i<400000; i++) { for( var nn =0; nn<100; nn++) if( arr[i] == 'asabb'+i) alert() }
לא, זו לא הדוגמא בכלל
אלא
יש לי סטרינג ארוווווך (2-3 מגה)
איך אני ממהר את החיפוש בו
רחמים, כפי אתה רואה, זה בכלל לא המושגים של תוכנת החיפוש שלך, אבל עדיין אני צריך כאן המהרה, כיון שמדובר בהרבה חיפושים (כל חיפוש משוכפל לכמה וירואציות).פורסם במקור בפורום CODE613 ב29/02/2016 04:15 (+02:00)
-
הסטרינג מכיל את כל התנ"ך
נניח שזה הכל
'וְכל שִיחַ הַשָּדֶה טֶרֶם יִהְיֶה בָאָרֶץ וְכָל עֵשֶב הַשָּדֶה טֶרֶם יִצְמָח כִּי לא הִמְטִיר';ויש קטע טקסט מעורבב
'וכל שיח השדה טרם שיהיה בארץ וכל עשב השדה טרם שיצמח כי הוא לא המטיר';ואני רוצה להוציא את כל הרצפים האפשריים שבקטע הטקסט שנמצאים בתנ"ך
מינימום 3 מיליםבדוגמא הזו התוצאה צריכה להיות כך:
- וכל שיח השדה טרם
- שיח השדה טרם
- בארץ וכל עשב השדה טרם
- וכל עשב השדה טרם
- עשב השדה טרם
ממה שבדקתי, אם אני מכניס כל מילה למערך, זמן החיפוש עורך פי 4 זמן.
וככל שהמילה נמצאת עמוק יותר בתנ"ך לוקח יותר זמן להחזיר את התוצאה (נראה שהשפה משתמשת בלולאה רגילה)סכ"ה יוצא דקות לכל קטע לא גדול.
פורסם במקור בפורום CODE613 ב29/02/2016 15:15 (+02:00)
-
ממליץ לך לפתח דטה בייס :lol: :lol: זאת בדיוק המומחיות של SQL ודומיו, זה מה שגוגל מנסה לעשות וכו'. אם זה טקסט קבוע, אין שום סיבה לא להשתמש בכלים קיימים קרי: דטה בייס, עד הרגע אני לא מבין את העקשנות להמציא את הגלגל.
אני בימים אלו מארגן את התנ"ך יש לי טבלה של מילים, כל מילה רשומה, ואני מחפש "פסוקים חברים" כלומר פסוקים שמכילים את הכי הרבה מילים תאומות ביחס לגודל שלהם (למעט מילים כמו "את" וכדומה שהן נפוצות מידי בתנ"ך) אתה מבין לבד שזה אפשרי רק ב SQL וגם הוא צריך לעבוד כמה ימים כדי להגיע לזה.
אגב מאגר איכותי של תנ"ך מאורגן לדטה בייס מעניין אותי מאוד אם יש את נפשך.
תודה.
פורסם במקור בפורום CODE613 ב29/02/2016 16:08 (+02:00)
-
ממליץ לך לפתח דטה בייס :lol: :lol: זאת בדיוק המומחיות של SQL ודומיו, זה מה שגוגל מנסה לעשות וכו'. אם זה טקסט קבוע, אין שום סיבה לא להשתמש בכלים קיימים קרי: דטה בייס, עד הרגע אני לא מבין את העקשנות להמציא את הגלגל.
לשאר הצרכים אני משתמש ב-noSql כי אני לא צריך חיפוש טבלאי, וכך אני מרוויח מהירות (200K מפתחות בקצת יותר משניה).
ובמקרה הספיציפי של התנ"ך מדובר במעט דאטה
ויש סיכוי שניהול שלו על הזכרון יתן מענה טוב ופשוט.אני בימים אלו מארגן את התנ"ך יש לי טבלה של מילים, כל מילה רשומה, ואני מחפש "פסוקים חברים" כלומר פסוקים שמכילים את הכי הרבה מילים תאומות ביחס לגודל שלהם (למעט מילים כמו "את" וכדומה שהן נפוצות מידי בתנ"ך) אתה מבין לבד שזה אפשרי רק ב SQL וגם הוא צריך לעבוד כמה ימים כדי להגיע לזה.
איך אתה מזהה את אותה מילה בוריאציות שונות?
אגב מאגר איכותי של תנ"ך מאורגן לדטה בייס מעניין אותי מאוד אם יש את נפשך.
אני לא מבין למה הכוונה
[/quote]טבלה שתיארת בפיסקה 2 מוכן?פורסם במקור בפורום CODE613 ב29/02/2016 16:28 (+02:00)
-
@דוד ל.ט.
אהרון מה סדר הגודל של הטקסט השני והראשון?
הראשון זה כל התנך והשני זה משפט קצר או באורך דומה?מתוך הטקסט, קטע בן 100 מילים, צריך למצוא צמדים בכל אורך שתואם לתנ"ך.
בסוף עשינו מה שרחמים בעצם כתב, רק לא ידעתי איך לממש א"ז ב-JS
הפעלתי לופ על הסטרינג, וכל מילה נשמרה כתכונה באוביקט ובו כל מיקומי המילה בסטרינג
כך ב2 פעולות (פניה לתכונה, ומשם למקום המדויק בסטרינג) מקבלים את המידע
במקום חיפוש רגיל שמבצע לופ על כל הסטרינג.פורסם במקור בפורום CODE613 ב02/03/2016 14:25 (+02:00)