কম্পিউটার

অ্যারে সমষ্টি:জাভাস্ক্রিপ্টে লুপ বনাম ES6 পদ্ধতির জন্য পুনরাবৃত্তি বনাম তুলনা করা


ধরা যাক, আমাদের কাছে প্রচুর সংখ্যার এন্ট্রি সহ একটি অ্যারে রয়েছে এবং একটি সাধারণ লুপে যে সময় লাগে বনাম ES6 ফাংশন অ্যারের সমস্ত এন্ট্রির সংকলন করতে যে সময় নেয়, অর্থাৎ পুনরাবৃত্ত বনাম লুপ বনাম ES6 ফাংশনের জন্য যে সময় লাগে তার তুলনা করতে হবে। .

এখানে, একটি বৃহৎ অ্যারে অনুকরণ করতে আমরা একটি অপেক্ষাকৃত ছোট অ্যারের উপর অনেক বার (10000000 এর ক্রম) জন্য পুনরাবৃত্তি করব। আমাদের মূল লক্ষ্য হল অ্যারের সংক্ষিপ্তকরণে প্রতিটি পদ্ধতিতে যে সময় লাগে তার একটি মোটামুটি অনুপাত থাকা।

পর্ব 1:পুনরাবৃত্তিমূলক পদ্ধতি

const recursiveSum = (arr, len = 0, sum = 0) => {
   if(len < arr.length){
      return recursiveSum(arr, len+1, sum + arr[len]);
   };
   return sum;
};

পর্ব 2:লুপিং এপ্রোচ

const loopingSum = arr => {
   let sum = 0;
   for(let i = 0; i < arr.length; i++){
      sum += arr[i];
   };
   return sum;
};

পার্ট 3:ES6 অ্যাপ্রোচ

const ES6Sum = arr => arr.reduce((acc, val) => acc+val);

এখন কনসোল মেথডসটাইম() এবং টাইমএন্ড() -

এর সাহায্যে এই তিনটি ফাংশনের পারফরম্যান্সের তুলনা করা যাক।

উদাহরণ

const ITERATIONS = 100000000;
const arr = [12, 65, 87, 2, 23, 87, 4, 66, 34, 89, 89, 32, 4];
const recursiveSum = (arr, len = 0, sum = 0) => {
   if(len < arr.length){
      return recursiveSum(arr, len+1, sum + arr[len]);
   };
   return sum;
};
const loopingSum = arr => {
   let sum = 0;
   for(let i = 0; i < arr.length; i++){
      sum += arr[i];
   };
   return sum;
};
const ES6Sum = arr => arr.reduce((acc, val) => acc+val);
console.time('recursive approach');
for(let k = 0; k < ITERATIONS; k++){
   recursiveSum(arr);
};
console.timeEnd('recursive approach');
console.time('looping approach');
for(let l = 0; l < ITERATIONS; l++){
   loopingSum(arr);
};
console.timeEnd('looping approach');
console.time('ES6 approach');
for(let m = 0; m < ITERATIONS; m++){
   loopingSum(arr);
};
console.timeEnd('ES6 approach');

এখন আসুন সম্ভাব্য কনসোল আউটপুট −

দেখে নেওয়া যাক

দ্রষ্টব্য - এটি শুধুমাত্র একটি সম্ভাব্য কনসোল আউটপুট, কারণ কোডের যেকোনো অংশের কর্মক্ষমতা সিস্টেমের উপর অনেক বেশি নির্ভর করে। কিন্তু এই তিনটি ফাংশন দ্বারা নেওয়া সময়ের অনুপাত সমস্ত সিস্টেমে কমবেশি একই হবে৷

recursive approach: 13.774s
looping approach: 3.138s
ES6 approach: 2.493s

সুতরাং, এখানে আমরা একটি নির্দিষ্ট মেশিনে দেখতে পাচ্ছি, প্রচুর সংখ্যক পুনরাবৃত্তির জন্য তিনটি পদ্ধতির দ্বারা নেওয়া সময়। এটি দেখায় যে একটি অ্যারের উপর ছোট এবং মৌলিক গণনার জন্য, ES6 ফাংশনগুলি অন্য যেকোন পদ্ধতির চেয়ে বেশি দক্ষ এবং কার্যকরী৷

দ্রষ্টব্য − ভাল ফলাফলের জন্য, অনলাইন IDE-তে এই কোড পরীক্ষা করা এড়িয়ে চলুন।


  1. কিভাবে জাভাস্ক্রিপ্টে একটি অ্যারের মাধ্যমে লুপ করার জন্য...ইন স্টেটমেন্ট ব্যবহার করবেন?

  2. জাভাস্ক্রিপ্ট বেসিক অ্যারে পদ্ধতি

  3. জাভাস্ক্রিপ্টে জোড় বা বিজোড় হিসাবে অ্যারের যোগফল নির্ণয় করা

  4. জাভাস্ক্রিপ্টে একটি অ্যারের জন্য (ধনাত্মক / নেতিবাচকের সমষ্টি) এর মান ফেরত দেওয়া হচ্ছে