ফেসবুক মেমল্যাবের সোর্স কোড প্রকাশ করেছে

facebook-memlab

MemLab হল জাভাস্ক্রিপ্ট মেমরি লিক খুঁজে বের করার জন্য একটি কাঠামো

সম্প্রতি সেই খবরটি ভেঙে গেল সোর্স কোড প্রকাশের সিদ্ধান্ত নিয়েছে ফেসবুক টুল কিট এর memlab, যা হলো মেমরি অবস্থার অংশ বিশ্লেষণ করার জন্য ডিজাইন করা হয়েছে গতিশীলভাবে বরাদ্দ (স্তূপ), মেমরির সাথে কাজটি অপ্টিমাইজ করার জন্য একটি কৌশল নির্ধারণ করুন এবং মেমরি লিক সনাক্ত করুন যা ঘটে যখন জাভাস্ক্রিপ্ট কোড নির্বাহ করা হচ্ছে। 

ফ্রেম উচ্চ মেমরি খরচের কারণ বিশ্লেষণ করার জন্য তৈরি করা হয়েছিল ওয়েবসাইট এবং ওয়েব অ্যাপ্লিকেশনের সাথে কাজ করার সময়। উদাহরণস্বরূপ, Facebook.com সাইটের একটি নতুন সংস্করণ ব্যবহার করার সময় মেমল্যাব মেমরি খরচ বিশ্লেষণ করতে ব্যবহার করা হয়েছিল, যা ফাঁস প্রকাশ করে যা বিনামূল্যে মেমরির ক্লান্তির কারণে একটি ক্লায়েন্ট-সাইড ব্রাউজার ক্র্যাশ করে।

যারা আমাদের ওয়েব অ্যাপ্লিকেশন ব্যবহার করে তারা প্রায়শই কর্মক্ষমতা সমস্যা এবং কার্যকরী সমাধানগুলি লক্ষ্য করবে। একটি স্মৃতিশক্তি হ্রাস, তবে একটি ভিন্ন গল্প। এটি অবিলম্বে লক্ষণীয় নয়, কারণ এটি একবারে এক টুকরো মেমরি গ্রহণ করে, সমগ্র ওয়েব সেশনকে প্রভাবিত করে এবং পরবর্তী মিথস্ক্রিয়াগুলিকে ধীর এবং কম প্রতিক্রিয়াশীল করে তোলে।

আমাদের ডেভেলপারদের এটি সমাধান করতে সাহায্য করার জন্য, আমরা মেমল্যাব তৈরি করেছি, একটি জাভাস্ক্রিপ্ট মেমরি টেস্টিং ফ্রেমওয়ার্ক যা লিক সনাক্তকরণ স্বয়ংক্রিয় করে এবং মেমরি লিক সনাক্ত করা সহজ করে তোলে। আমরা সফলভাবে টেকসই মেমরি বৃদ্ধি ধারণ করতে এবং আমাদের পণ্য ও পরিকাঠামোতে মেমরি লিক এবং মেমরি অপ্টিমাইজেশানের সুযোগ চিহ্নিত করতে মেটাতে MemLab ব্যবহার করেছি।

উচ্চ মেমরি ব্যবহার পৃষ্ঠা লোড এবং ইন্টারঅ্যাকশন কর্মক্ষমতার উপর একটি পরিসংখ্যানগতভাবে উল্লেখযোগ্য এবং নেতিবাচক প্রভাব ফেলে (একটি পৃষ্ঠা লোড করতে বা একটি মিথস্ক্রিয়া সম্পাদন করতে কতক্ষণ লাগে)
ব্যবহারকারীর ব্যস্ততার মেট্রিক (সক্রিয় ব্যবহারকারী, সাইটে ব্যয় করা সময়, সম্পাদিত কার্যকলাপের সংখ্যা)

মেমরি ফাঁসের কারণ জাভাস্ক্রিপ্ট কোড নির্বাহ করার সময় লুকানো বস্তুর উল্লেখ উপস্থিতি হতে পারেতাই, তাই আবর্জনা সংগ্রহকারী মেমরি মুক্ত করতে পারে না বস্তু দ্বারা দখল করা, মানগুলির অযৌক্তিক ক্যাশিং, বা পুরানো তালিকা আইটেমগুলি উচ্ছেদ না করে অসীম স্ক্রোল প্রয়োগ করা।

উদাহরণস্বরূপ, নিম্নলিখিত ক্রোম কোডে, "obj" অবজেক্টের কারণে মেমরি লিক হয়, যদিও এটি নাল সেট করা থাকে, কারণ ক্রোম রেন্ডার করা বস্তুর অভ্যন্তরীণ রেফারেন্স রাখে যাতে সেগুলিকে পরে ওয়েব কনসোলে পরিদর্শন করা যায়।

মেমল্যাবের মৌলিক অপারেশন, নিম্নলিখিত:

  1. এটি প্রথমে ব্রাউজারে মেমরি লিক সনাক্তকরণ করে, মেমল্যাব আপনাকে স্বয়ংক্রিয়ভাবে গতিশীল মেমরি স্ন্যাপশটগুলি তুলনা করতে, মেমরি লিক সনাক্ত করতে এবং মোট ফলাফলের অনুমতি দেয়।
  2. একটি অবজেক্ট-ওরিয়েন্টেড হিপ ট্রাভার্সাল API যা আপনাকে আপনার নিজস্ব লিক ডিটেকশন অ্যালগরিদম এবং হিপ স্ন্যাপশট পার্স করার জন্য সিস্টেমগুলি প্রয়োগ করতে দেয়৷ হিপ পার্সিং ক্রোমিয়াম ইঞ্জিনের উপর ভিত্তি করে ব্রাউজারগুলির পাশাপাশি Node.js, Electron এবং Hermes প্ল্যাটফর্মগুলির জন্য সমর্থিত।
  3. কমান্ড লাইন ইন্টারফেস এবং API মেমরি ব্যবহার অপ্টিমাইজ করার সুযোগ খুঁজে পেতে.
  4. Node.js-এর জন্য একটি অ্যাসারশন সিস্টেম যা আপনাকে ইউনিট পরীক্ষা তৈরি করতে এবং আপনার নিজের রাজ্যকে বিভক্ত করতে, আপনার মেমরি পরীক্ষা করতে বা উন্নত দাবিগুলি লিখতে Node.js-ভিত্তিক প্রোগ্রামগুলি চালানোর অনুমতি দেয়।
  5. রিটেনশন ট্রেস গ্রুপিং, মেমল্যাব সমস্ত রিটেনশন ট্রেসকে একত্রিত করে এবং ফিল্টার করা অবজেক্টের প্রতিটি গ্রুপের জন্য একটি ট্রেস প্রদর্শন করে যা একই রকম ধরে রাখার ট্রেস শেয়ার করে। ট্রেসে ডিবাগিং তথ্য যেমন ডমিনেটিং নোড এবং ধরে রাখা মাপ অন্তর্ভুক্ত থাকে।
  6. লিক রিপোর্ট করার মাধ্যমে, মেমল্যাব মেমরি রিগ্রেশন সম্পর্কে একটি অবিচ্ছিন্ন সংকেত পেতে সারা দিন নিয়মিত বিরতিতে চালানো যেতে পারে। যেকোনো নতুন রিগ্রেশন একটি অভ্যন্তরীণ ড্যাশবোর্ডে যোগ করা হয়, যেখানে সমস্ত সনাক্ত করা মেমরি ফাঁসের পুলড ধরে রাখার ট্রেস সংগ্রহ করা হয় এবং শ্রেণীবদ্ধ করা হয়। বিকাশকারীরা তারপরে প্রতিটি মেমরি লিকের জন্য হোল্ড ট্রেসে অবজেক্টের বৈশিষ্ট্যগুলি ক্লিক করতে এবং দেখতে পারে।

পরিশেষে তুমি যদি উৎসাহিত হও, আপনার জানা উচিত যে Memlab কোড MIT লাইসেন্সের অধীনে ওপেন সোর্স এবং আপনি এটি সম্পর্কে আরও জানতে পারেন নীচের লিঙ্কে।


আপনার মন্তব্য দিন

আপনার ইমেল ঠিকানা প্রকাশিত হবে না। প্রয়োজনীয় ক্ষেত্রগুলি দিয়ে চিহ্নিত করা *

*

*

  1. ডেটার জন্য দায়বদ্ধ: মিগুয়েল অ্যাঞ্জেল গাটান
  2. ডেটার উদ্দেশ্য: নিয়ন্ত্রণ স্প্যাম, মন্তব্য পরিচালনা।
  3. আইনীকরণ: আপনার সম্মতি
  4. তথ্য যোগাযোগ: ডেটা আইনি বাধ্যবাধকতা ব্যতীত তৃতীয় পক্ষের কাছে জানানো হবে না।
  5. ডেটা স্টোরেজ: ওসেন্টাস নেটওয়ার্কস (ইইউ) দ্বারা হোস্ট করা ডেটাবেস
  6. অধিকার: যে কোনও সময় আপনি আপনার তথ্য সীমাবদ্ধ করতে, পুনরুদ্ধার করতে এবং মুছতে পারেন।