ব্লুবার্ড লেখক এখানে।
ভি 8 প্রতিশ্রুতি বাস্তবায়ন জাভাস্ক্রিপ্টে লিখিত হয়েছে সি নয়, সমস্ত জাভাস্ক্রিপ্ট (ভি 8 এর নিজস্ব সহ) নেটিভ কোডে সংকলিত। নেতিবাচক কোডে সংকলনের আগে অতিরিক্তভাবে জাভাস্ক্রিপ্টের লিখিত ব্যবহারকারী অনুকূলিতকরণ করা হয় (যদি সম্ভব হয় (এবং এটির জন্য মূল্যবান))। প্রতিশ্রুতিবদ্ধ বাস্তবায়ন এমন কিছু যা সি তে লিখিত হওয়া থেকে খুব বেশি বা কোনও উপকারে আসবে না, বাস্তবে এটি কেবল এটি ধীর করে দেবে কারণ আপনি যা করছেন তা জাভাস্ক্রিপ্ট অবজেক্ট এবং যোগাযোগকে ম্যানিপুলেট করছে।
ভি 8 বাস্তবায়ন কেবল ব্লুবার্ডের মতো অপটিমাইজড নয়, উদাহরণের জন্য এটি প্রতিশ্রুতির হ্যান্ডলারের জন্য অ্যারে বরাদ্দ করে । প্রতিটি প্রতিশ্রুতিতেও বেশ কয়েকটি অ্যারে বরাদ্দ করতে হয় যখন এটি প্রচুর স্মৃতি গ্রহণ করে (বেঞ্চমার্ক সামগ্রিক 80 কে প্রতিশ্রুতি তৈরি করে যাতে 160 কে অব্যবহৃত অ্যারে বরাদ্দ করা হয়)। বাস্তবে 99.99% ব্যবহারের ক্ষেত্রে কখনও প্রতিশ্রুতি হয় না তাই এই সাধারণ ক্ষেত্রে অপরিহার্যতা অর্জন করে বিশাল মেমরি ব্যবহারের উন্নতি লাভ করে।
এমনকি ভি 8 ব্লুবার্ডের মতো একই অপটিমাইজেশন বাস্তবায়ন করলেও এটি নির্দিষ্টকরণের দ্বারা বাধা হয়ে দাঁড়াবে। new Promise
ইএস 6-তে কোনও মূল প্রতিশ্রুতি তৈরির উপায় নেই বলে বেঞ্চমার্ককে (ব্লুবার্ডে একটি অ্যান্টি-প্যাটার্ন) ব্যবহার করতে হবে । new Promise
প্রতিশ্রুতি তৈরির একটি অত্যন্ত ধীর পথ, প্রথমে এক্সিকিউটার ফাংশন একটি বন্ধের বরাদ্দ দেয়, দ্বিতীয়ত এটি আর্গুমেন্ট হিসাবে 2 পৃথক ক্লোজার পাস হয়। প্রতিশ্রুতি অনুযায়ী বরাদ্দকৃত এটি 3 টি ক্লোজার তবে একটি বন্ধ ইতিমধ্যে অনুকূলিত প্রতিশ্রুতির চেয়ে আরও ব্যয়বহুল অবজেক্ট।
ব্লুবার্ড এমনটি ব্যবহার করতে পারে promisify
যা প্রচুর অপ্টিমাইজেশানকে সক্ষম করে এবং কলব্যাক এপিআই গ্রহণের একাধিক সুবিধাজনক উপায় এবং এটি পুরো মডিউলগুলির প্রতিশ্রুতি ভিত্তিক মডিউলগুলিকে এক লাইনে রূপান্তর করতে সক্ষম করে ( promisifyAll(require('redis'));
)।