
أعتقد أن لقطة الشاشة هذه لمقياس إنتاجي قائم حقًا كافية لإيصال معنى المقال ، ولكن إذا كان القارئ مهتمًا بأفكاري حول هذا الموضوع ، فمرحباً بك.
هاجس المبرمجين مع سرعة تنفيذ البرنامج. نحن نراقب السرعة حتى عندما لا تكون هذه السرعة مهمة للغاية. يتعارض أحيانا مع المنطق السليم والمنطق. لا أفهم تمامًا ما تعنيه عبارة "السرعة" أو "الأداء" في كل حالة. ما زلنا نريد أسرع الأجهزة ، وأسرع لغة ، وأخف إطار.
عن طيب خاطر أعتقد أنك ، اسم المستخدم ، ليست هكذا. أن تكون أنت قادرًا على كتابة المعيار الصحيح ، أنت تعرف كيف يعمل هذا أو ذاك وقت التشغيل ، وأنك تكره تحسين السرعة لمجرد تحسين السرعة وأنت تعرف الكثير عن الأجهزة. ولكن هناك المزيد من الناس من الفقرة السابقة. تم الفحص
رؤية المثال في الصورة أعلاه ، أنا اختنق أولاً القهوة ...
- كيف يمكن أن يعمل الطباع بشكل أسرع من جافا سكريبت ، وفي الوقت نفسه يأكل عدة مرات ذاكرة أقل؟!
- لا مفر!
لا يحتوي Typescript على وقت التشغيل الخاص به. وهذا يعني أنه لا يمكنك تشغيل typescript في أي مكان أو في أي مكان تقريبًا . يجب عليك أولاً تجميعها في جافا سكريبت ، والتي تعمل بعد ذلك في وقت التشغيل ، وهذا ما يفهمه جافا سكريبت هذا. في هذه الحالة ، تصرفت العقدة v11.3434 كوقت تشغيل. عن طريق الصدفة السعيدة ، يعمل مثال جافا سكريبت أيضًا في نفس وقت التشغيل.
بدلاً من مقارنة اللغات ، نحصل على مسابقة صغيرة في البرمجة الرياضية.
→ رمز الكتابة
→ كود جافا سكريبت
اتضح أن وقت التشغيل واستهلاك الذاكرة وغيرها من الخصائص تعتمد بشكل أساسي على من كتب رمز التحقق هذا وكيف. بالطبع ، هنا يمكنك أن تجد الحجة القائلة بأن النص المطبوع يفرض عليك كتابة "الرمز الصحيح". لكن لا أحد يكترث بترجمة الخط النصي في جافا سكريبت ، كما أنني لم أر أماكن بها تحسينات.
بالمناسبة ، كم من الوقت رأيت شخصًا يكتب رمزًا مشابهًا ، واستمر هذا الاستعراض؟ الصلبة ، OOP و FP لا رائحة هنا. المدونة مكتوبة بشكل صريح بأسلوب إجرائي. لأنه لديه مهمة مختلفة. افهم بشكل صحيح ، على الرغم من أن الشفرة تحل المشكلة ، إلا أنها تتطلب إعادة التنظيم قبل الإنتاج. وليس معروفًا كيف سيؤثر إعادة البيع على الأداء. ولكن ربما هذا هو اختيار النت.
اكتشفنا مثالا. من الواضح أن المثال غير كافٍ.
ولكن لنرى كيف اجتازت لغات البرمجة الأخرى نفس الاختبار.

ما رأيك ، ما مدى صحة الاستنتاج بأن Swift أسرع من Go؟ أعتقد أن هذا خطأ. يكفي أن نرى أن تنفيذي الصدأ (الخطان 2 و 6) يختلفان في الوقت المحدد مرتين.
وهنا المشكلة تبدو بالفعل أكثر خطورة. إذا كانت المقارنة بين الطباع النصية وجافا سكريبت تعتبر مزحة ، ففي حالة اللغات الأخرى ، فإن المشكلة ليست واضحة. هل ستبدأ في فهم ما الأمر إذا رأيت مثل هذا التقرير؟

اتضح أن الرمز المرجعي يحتاج إلى مراقبة دقيقة.
سؤال: متى كانت آخر مرة رأيت فيها شخصًا يحاول التحقق من كيفية كتابة الكود المرجعي مباشرةً بعد أن شاهدت رسومات بيانية جميلة الأداء؟
التقيت هذه نادرا جدا. أعتقد أن هؤلاء المهندسين قليلون.
من ناحية أخرى ، أمام عيني ، هناك العديد من الأمثلة ، بناءً على مثل هذه الاختبارات ، يتم التوصل إلى استنتاج حول أداء وخفية التكنولوجيا. وبالمناسبة ، يتم تشكيل الرأي العام.
هنا يمكنك مقارنة أداء أطر عمل جافا سكريبت الرئيسية.

هل ما زلت تثق في النتائج؟ انا لا.
هذا كل شيء. ولكن هناك أخبار جيدة. لا تزال مهارة المبرمج لها تأثير كبير على أداء البرنامج.
الخلاصة:
لن تعرض لك Microbenchmarks أي شيء إلا إذا كنت محترفًا في الأداء لمنصة معينة. والأفضل من ذلك ، أن تكتب بنفسك هذه المعايير مع مراعاة متطلباتك وشروطك بالضبط ، بينما تفهم ما تفعله.
PS:
تتم كتابة المنشور كإجابة على مقارنات متسرعة واستنتاجات حول الإنتاجية في المستقبل. بالطبع ، يمكن تقديم جميع الاستنتاجات والحجج الواردة في المقال دون هذا المثال ، ولكن مع الأرقام والتفاصيل ، يكون أكثر متعة ووضوحًا.