জাভাস্ক্রিপ্টে অ্যারে এবং অবজেক্টগুলির সাথে সম্পর্কিত পারফরম্যান্স (বিশেষত গুগল ভি 8) নথিভুক্ত করা খুব আকর্ষণীয় হবে। আমি ইন্টারনেটে কোথাও এই বিষয়ে কোনও বিস্তৃত নিবন্ধ পাই না।
আমি বুঝতে পারি যে কিছু অবজেক্টগুলি তাদের অন্তর্নিহিত ডেটা কাঠামো হিসাবে ক্লাস ব্যবহার করে। যদি প্রচুর সম্পত্তি থাকে তবে এটি কখনও কখনও হ্যাশ টেবিল হিসাবে বিবেচিত হয়?
আমি আরও বুঝতে পারি যে অ্যারেগুলিকে মাঝে মাঝে সি ++ অ্যারের মতো আচরণ করা হয় (যেমন দ্রুত র্যান্ডম ইনডেক্সিং, ধীর মোছা এবং পুনরায় আকার দেওয়া)। এবং, অন্যান্য সময়ে, তাদেরকে আরও অবজেক্টের (চিকিত্সা, দ্রুত সারণী, দ্রুত সন্নিবেশ / অপসারণ, আরও মেমরি) এর মতো আচরণ করা হয়। এবং, কখনও কখনও এগুলি লিঙ্কযুক্ত তালিকাগুলি (যেমন ধীর র্যান্ডম ইনডেক্সিং, দ্রুত অপসারণ / শুরুতে / শেষে সন্নিবেশ) হিসাবে সংরক্ষণ করা হয়
জাভাস্ক্রিপ্টে অ্যারে / অবজেক্ট পুনরুদ্ধার এবং ম্যানিপুলেশনের সঠিক পারফরম্যান্সটি কী? (বিশেষত গুগল ভি 8 এর জন্য)
আরও সুনির্দিষ্টভাবে বলা যায়, এটির কার্য সম্পাদন প্রভাব কী:
- একটি অবজেক্টে একটি সম্পত্তি যুক্ত করা
- একটি অবজেক্ট থেকে একটি সম্পত্তি সরানো
- কোনও অবজেক্টে একটি সম্পত্তি ইনডেক্স করা
- একটি অ্যারেতে একটি আইটেম যুক্ত করা হচ্ছে
- একটি অ্যারে থেকে একটি আইটেম সরানো হচ্ছে
- একটি অ্যারেতে একটি আইটেম সূচীকরণ
- অ্যারে.পপ () কল করা হচ্ছে
- অ্যারে.পুষকে কল করা হচ্ছে ()
- কলিং অ্যারে.শিফ্ট ()
- অ্যারে.আনশীফ্ট () কল করা হচ্ছে
- কল করা অ্যারে.স্লাইস ()
আরও বিশদের জন্য যে কোনও নিবন্ধ বা লিঙ্কগুলি প্রশংসা করা হবে। :)
সম্পাদনা: আমি সত্যিই ভাবছি কীভাবে জাভাস্ক্রিপ্ট অ্যারে এবং অবজেক্টগুলি হুডের নীচে কাজ করে। এছাড়াও, ভি 8 ইঞ্জিন কোন প্রসঙ্গে অন্য ডেটা স্ট্রাকচারটিতে "স্যুইচ-ওভার" করতে "জানে"?
উদাহরণস্বরূপ, ধরুন আমি এর সাথে একটি অ্যারে তৈরি করেছি ...
var arr = [];
arr[10000000] = 20;
arr.push(21);
আসলে এখানে কি চলছে?
বা ... এই কি ... ???
var arr = [];
//Add lots of items
for(var i = 0; i < 1000000; i++)
arr[i] = Math.random();
//Now I use it like a queue...
for(var i = 0; i < arr.length; i++)
{
var item = arr[i].shift();
//Do something with item...
}
প্রচলিত অ্যারেগুলির জন্য, কর্মক্ষমতাটি ভয়ানক হবে; যদিও, যদি কোনও লিঙ্কলিস্ট ব্যবহার করা হত ... তবে খুব খারাপ নয়।