25 تکنیک برای بهبود راندمان جاوا اسکریپت قسمت چهارم
4- به حداکثر رساندن اثرگذاری تکرار ها.
مشکل:
مساله زمان مصرفی برای اجرای دستوراته که همیشه حلقه ها حرف اول رو میزنن.
راهکار:
حلقه های اضافی رو حذف کنید و فراخوانی توابع رو از داخل حلقه ها خارج کنید.
- از قدرت اندیس کردن اشیاء در جاوا اسکریپت بهره برداری کنید
ابجکت های بومی جاوا اسکریپت {} میتونن به صورت یک هش تیبل (Hash Table) قوی مورد استفاده قرار بگیرن که میشه سریع توش سرچ کرد و ارجاعات اشیاء رو توش بدست آورد. مکانیزمش ساده است درست مثل حالتی که دیتا بیس ها اندیس میکنن که سرچ سریعتر بشه.
پس چرا باید حلقه استفاده کرد؟ میتونید یه آبجکت ساده (Plain Object) رو به منظور اندیس استفاده کنید تا یه پرفورمنس خوب بگیرین. نگا کنید :
var data = {
index: {
"triplem": {name: "Mohammad", surname: "MalekMakan", age: 31},
"fati": {name: "Fateme", surname: "HP", age: 25 }
// another 1000 records
},
get: function(username) {
return this.index[username];
}
}
- از شیئ Array و متدهای push، pop و shift استفاده کنید
به دلیل اینکه این متدها نزدیک ترین حالت ممکن از دستورات رو به اسمبلی سطح پایین مفسر میسازه به مراتب کمترین بار پردازشی رو دارن. علاوه بر این استفاده از ساختار های صف و پشته میتونه منطق کد شما رو ساده تر کنه و حلقه های بیهوده رو حذف کنه. (بعدا شاید بتونم مفصلا در مورد این بخش مطلبی جدا گانه بنویسم. منتظر باشین)
- از نوع ارجاعی استفاده کنید!
جاوا اسکریپت هم مثل باقی زبانهای C پایه (C-Based) دو نوع ارجاع داره : مقداری و ارجاعی. مقداری مثل انواع داده صحیح، رشته ای، منطقی و غیره که کپی میشن موقع پاس دادن به تابع جدید. یا انواع ارجاعی که یه اشاره گر سبک و کوچولو از اونها پاس داده میشه مثل آرایه ها، اشیاء و ... . میتونید از این استفاده کنید که در توابع بازگشتی فقط اشاره گر پاس بدین. مثلا با ارجاع دادن نود DOM در زمانی که داریم پیمایش میکنیم گره ها رو (نود). در ضمن مقایسه اشاره گر به اشیاء هم ممکنه و هم به مراتب راندمان بهتری داره.
- در پردازش رشته ها تا حد ممکن از توابع بومی استفاده کنید.
کارایی مثل جمع رشته ای و غیره رو از توابع موجود خود موتورهای جاوا اسکریپت استفاده کنید. مثلا استفاده از علامت + میتونه پرفرومنس رو بندازه. چرا؟ جون جاوا اسکریتپ مثل سی شارپ و جاوا از انواع رشته ای تغییر ناپذیر استفاده میکنن (Immutable Strings).
قسمت سوم | ادامه داره این مطلب...
دوشنبه 6 دی 1395
ایده ها، نظرات و سوالات دوستان ما
نوشتتون خوب بود ، استفاده کردم .
متشکرم .
من 4 تکنیک به شما بدهکارم :) که سعی میکنم مستقل از درگیری های روزمره براتون بنویسمشون.
خیلی طول کشید قسمت چهارم رو بذارم میدونم... خیلی درگیر پروژهای جدیدم بودم.به هر حال کلی چیز جدید توی یک فضای جدید هم براتون دارم که به زودی میذارم. کلی ابزار برا مک، تریک های زبون گرووی (Groovy)، ابزار های بدرد بخور برای نود جی اس (Node Js) و ده تا مطلب و موضوع جدید دارم که با هم از دونستش لذت ببریم.