לא עובד!!
לא זה
="{ SEQ aa \* MERGEFORMAT }אא"
ולא
IF 1 > 0 "{={ SEQ \c } \* MERGEFORMAT }אא" "בב"
לא עובד!!
לא זה
="{ SEQ aa \* MERGEFORMAT }אא"
ולא
IF 1 > 0 "{={ SEQ \c } \* MERGEFORMAT }אא" "בב"
איך יוצרים קוד חופשי כזה?
שיהיה כתוב "אבג1" "אבג2"
וכו'
?
@מנצפך אמר באיך אתם מדבגים את הקוד שלכם?:
@dovid אמר באיך אתם מדבגים את הקוד שלכם?:
ב. בנוד כל שגיאה שלא בתוך try מפילה הכל.
אגב,
אני חושב שtry ל- promise, לא עוזר. ובכל מקרה יפיל את האפליקציה...
וודאי לא נכון ככלל
@yossiz
ואיך אני כותב טווח של תווים בעיתיים כאלו?
var reg = new RegExp('[\r\t\-\–]')
'aa'.search(reg)
@yossiz אמר בעזרה בדיבוג הזכרון של כרום:
2 לא שולט על 5 כי יש שולט יותר קרוב - 3.
ומדוע 4 לא קרוב יותר ל6?
אגב, האפליקציה כבר בסדר
בגלל טעות בקוד נוצר שם מערך עצום בגודלו
אבל אני רוצה לנצל את ההזדמנות לבין את הדיבוג.
צריך לומר:
עזרה "בדיבוג־הזכרון" של כרום
באמצעותו אני מדבג אפליקציית nodejs.
אתה לא רואה בהודעה הקודמת את הדיאגרמה הזאת?
אז אדביק את התמונה עצמה, במקום לינק שלה
כאן יש הסבר רישמי ומסודר של גוגל
רק שיש לי כמה קושיות
על הדיאגרמה הזאת הם כותבים ש:
צומת 1 שולט בצומת 2
צומת 2 שולט בצמתים 3, 4 ו 6
צומת 3 שולט בצומת 5
צומת 5 שולט בצומת 8
צומת 6 שולט בצומת 7
מדוע 2 לא שולט גם על 5 ??
@טכנאי-סלולר
על הדרך
אפשר להשתמש בהקלטה לשעון מעורר?
הנה בדיקה נוספת כשהזכרון גדל פי 15 מהבדיקה הקודמת
איך יתכן שגלובל גדול יותר??
אני מדבג אפליקצית nodejs
מאוד מאוד אשמח להסבר, מה ההבדל בין 2 הטורים השמאליים? ומהו הטור השמאלי מימין?
ואיך זה שסך כל האחוזים הם יותר מ-100??
בהנחה שאין משתנים שמתפחים יותר מדי אלא הבעיה היא שהם משוכפלים שלא לצורך
איפה בודקים א"ז?
השורה הראשונה היא הפונקציות ברירת מחדל של JS? אז נכון שאין מה להסתכל ע"ז?
איך הייתם מציעים לשמור כותרות צד?
https://javascript-ninja.fr/optimizing-speed-in-node-js/
מה ההסבר למה שהוא עשה?
המקורי לא תומך בווינדוס.
const global1 = 1000000
const global2 = 2000000
const global3 = 3000000
const global4 = 4000000
const global5 = 5000000
const global6 = 6000000
class dbCtrl {
static async getData( ...arg ) {
let data = await new Promise( resolve => {
setTimeout( resolve, 500 )
})
//db.get( ...arg ).catch( /*logIfBud*/ )
return data && data.toString('utf8').split(',')
}
}
class dataCtrl {
constructor( name ) {
this.name = name
}
async getName() {
let count = 0
let data
while( !this.tryFinish && /*Temporary:*/ (count++) < 5000 &&
!(data = await dbCtrl.getData( this.name ))
) {
this.tryVariations()
}
this.fullName = data
return this.fullName
}
tryVariations() {
this.name = this.name.replace(/"/g, '')
}
}
class mainCtrl {
constructor() {
this.names = ['david', 'aharon']
}
async getAllNames() {
this.fullNames = await Promise.all(
this.names.map( n=> new dataCtrl(n).getName() )
)
}
}
new mainCtrl().getAllNames()
הקוד הזה עובד בסדר
אבל האמיתי לא
אולי בגלל שיש שם גלובלים שנכלאים (closer) ומשוכפלים בפונקציות?
זה הקוד
while( !this.tryFinish &&
!(data = await getData( this.Name ))
) {
this.tryVariations()
}
לא תמיד, רק אם getData
רץ יותר מדי פעמים
או שהפונקציה שמריצה אותה מורצת יותר מדי פעמים במקביל (מה שקורה ברצה אסינכרונית)
אם לא, זה אוכל א"ז ללא בעיה.
יש לכם כיון מדוע זה קורה ומה הפתרון?
בעבר tryVariations
הריץ בסופו, את הפונקציה שעוטפת את הקוד הזה, רקורסיה, אבל בשביל בשביל שהמחסנית לא תתמלא, הרצתי א"ז בתוך setTimeout.
זה בדיוק מה שרציתי לחסוך, את השרשורים המבלבלים האלו.
@dovid אמר בשימוש ב-MongoDB בנוד:
לא התכוונתי דוקא קלאבק, התכוונתי שהאפליקציה כולה תיטען מתוך פונקציה.
לא הבנתי מדוע לא להשתמש ב-await
(בפונקציית insert
שאמור להיקרא מתוך פונקציה, לא ב-require
)?
@dovid אמר בשימוש ב-MongoDB בנוד:
נוד מאמצת ממש לאט את ההתקדמויות האלה
שמח שהם מאפשרים לדנו לעקוף אותם בקלות