Learn JavaScript

lesson ৫ / ৯ · scope, hoisting আর closure

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 এর ভেতরে কী আছে

  1. Specification-এর ছবি: Environment Record
  2. দুই pass, specification-এর ভাষায়
  3. V8-এর রূপ: প্রতি call-এ একটা context, আর register
  4. Closure-এর memory lab
ভেতরের কথা: environment record, V8-এর context আর closure-এর memory lab | Learn JavaScript | Progsity