Module ৬ · scope, hoisting আর closure
ভেতরের কথা: environment record, V8-এর context আর closure-এর memory lab
Proপড়া
Maria-র team-এর dashboard সারাদিন একটা browser tab-এ খোলা থাকে। বিকেলের দিকে tab-টা সকাল নয়টার চেয়ে কয়েকশো megabyte বেশি memory খায়। Heap snapshot দেখায়, দায়ী একটা ছোট function, যেটা শুধু একটা label ফেরত দেয়। ওই function একবারও সেই বড় array-টা পড়ে না, অথচ snapshot বলছে array-টা ওর জন্যই বেঁচে আছে। Maria যথারীতি জিজ্ঞেস করে: "কিন্তু যেটা কাজেই লাগে না, সেটা একটা function ধরে রাখবে কেন?" এই lesson উত্তরটা দেবে তিনবার: language-এর specification-এ, engine-এর bytecode-এ, আর মেপে দেখা একটা lab-এ।
আপনার জন্য এই lesson টা খোলা কি না দেখা হচ্ছে…
ভেতরের কথা: environment record, V8-এর context আর closure-এর memory lab এর ভেতরে কী আছে
- Specification-এর ছবি: Environment Record
- দুই pass, specification-এর ভাষায়
- V8-এর রূপ: প্রতি call-এ একটা context, আর register
- Closure-এর memory lab