مقارنة بين الأداء بين 4 طرق يمكن أن تضيف عناصر إلى صفيف:
إضافة باستخدام فهرس
نسخة الكود كما يلي:
console.time ("index") ؛
var a = [] ؛
لـ (var i = 0 ، l = times ؛ i <l ؛ i ++) {
a [i] = i ؛
}
Console.TimeEnd ("index") ؛
استخدام طريقة الدفع
نسخة الكود كما يلي:
Console.Time ("Push") ؛
var a = [] ؛
لـ (var i = 0 ، l = times ؛ i <l ؛ i ++) {
A.Push (i) ؛
}
Console.TimeEnd ("Push") ؛
استخدم طريقة التسلس
نسخة الكود كما يلي:
console.time ("concat") ؛
var a = [] ؛
لـ (var i = 0 ، l = times ؛ i <l ؛ i ++) {
A.Concat (i) ؛
}
Console.TimeEnd ("CONCAT") ؛
استخدم طريقة التسلس ، والمعلمات هي صفيف
نسخة الكود كما يلي:
Console.Time ("Concat with Array") ؛
var a = [] ؛
لـ (var i = 0 ، l = times ؛ i <l ؛ i ++) {
A.Concat ([i]) ؛
}
Console.TimeEnd ("Concat with Array") ؛
حدد الأوقات إلى 100 مليون مرة:
نسخة الكود كما يلي:
الفهرس: 0.310 مللي ثانية
الدفع: 1.476 مللي ثانية
CONCAT: 8.911ms
Concat مع المصفوفة: 2.261ms
حدد أوقاتًا إلى 100،000 (100،000) مرة:
نسخة الكود كما يلي:
الفهرس: 1.967ms
الدفع: 11.980ms
CONCAT: 70.410ms
Concat مع Array: 28.292ms
حدد الأوقات إلى 1000000 (مليون) مرة:
نسخة الكود كما يلي:
الفهرس: 138.559ms
دفع: 93.074ms
CONCAT: 608.768ms
Concat مع المصفوفة: 243.371ms
حدد الأوقات إلى 100000 (10 ملايين) مرة:
نسخة الكود كما يلي:
الفهرس: 1473.733ms
دفع: 611.636ms
CONCAT: 6058.528ms
Concat مع Array: 2431.689ms
لخص
هذا الاستنتاج مفيد فقط مع متصفح Chrome
كفاءة تنفيذ طريقة التسلس هي أبطأ
بالمقارنة مع نقل الوسيطة للطريقتين المتسلقين ، عندما تكون المعلمات المقبولة صفائف ، تكون كفاءة التنفيذ أعلى من تلك الموجودة في المعلمات المقبولة ك غيردشة.
في معظم الحالات ، تكون كفاءة تنفيذ المفهرس أعلى من طريقة الدفع.
عندما يزداد عدد عمليات الإعدام ، تبدأ كفاءة تنفيذ المفهرس في أن تكون أسوأ من طريقة الدفع
مقارنة المتصفح
بفضل مستخدمي الإنترنت للإشارة إلى أنني أفتقر إلى الخبرة ، فإليك المقارنات الأفقية بين المتصفحات
أولا ، استخدم طريقة COSCAT. في IE و Firefox ، تكون المعلمات صفائف ، وكفاءة التنفيذ أبطأ من المعلمات الأخرى غير المصفوفات ، لكن الفرق ليس كبيرًا.
ثم من المؤكد أن أساليب الفهرس والدفع أسرع من التسلس. استخدام طريقة الفهرس في IE أسرع دائمًا من الدفع. الدفع أفضل قليلاً في Firefox ولكن الفرق ليس كبيرًا
بالمقارنة مع كفاءة تنفيذ الفهرس وطرق الدفع بين المتصفحات الثلاثة ، فإن كفاءة التنفيذ في Firefox أعلى بكثير من IE و Chrome. في مليون مرة ، هو في الأساس 10 مرات أسرع. أنا أبطأ مقارنة بين الاثنين الآخرين.
فيما يلي نتائج الملايين:
نسخة الكود كما يلي:
// Firefox
الفهرس: بدأ المؤقت
الفهرس: 229.79ms
دفع: بدأ المؤقت
دفع: 205.12ms
CONCAT: بدأ المؤقت
CONCAT: 2136.99ms
Concat مع Array: بدأ المؤقت
Concat مع المصفوفة: 2365.18ms
`` `
نسخة الكود كما يلي:
// أي
الفهرس: 2،533.744 ميلي ثانية
الدفع: 3،865.979 مللي ثانية
CONCAT: 4،303.139 Milliseconds
Concat مع Array: 4،792.208 مللي ثانية
هذه المقالة هي فقط لاستكشاف أداء JS. سوف يعمق فهم أصدقائك لجافا سكريبت من خلال المقارنة. أتمنى أن يعجبك.