كل شيء مذهل في البرمجيات ، لكن الجميع غير سعداء



هناك موقف نموذجي يمكن العثور عليه في حبري وليس فقط: "على الرغم من أن الأجهزة أفضل على مر السنين ، إلا أن البشرية قد قللت التأثير إلى لا شيء عن طريق كتابة البرامج بشكل أسوأ".

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

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

لذلك ، قررت أن أصف هذه العوامل الضائعة. بما أن النص أصبح قاسيًا ، أود أن أؤكد أن رأيي شخصي بحت (على الرغم من أنني أشير إلى مؤتمرات الشركة التي أعمل فيها).

انتقائية الذاكرة


من المعروف أن هناك تأثيرًا للحنين إلى الماضي "في وقت سابق كان العشب أكثر خضرة ، وكانت الموسيقى أفضل." ولكن ، في رأيي ، يأخذ هذا التأثير بالنسبة للكثيرين أبعادًا مخيفة ، عندما تختلف الأحاسيس بشكل كبير عن الواقع.

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


ردة فعلي الأولى: "حسنًا ، كيف كان دفق فيديو 4K عام 1983؟" هذا ، بالنسبة للمبتدئين ، دعونا نتذكر أن معظم تطبيقات الكمبيوتر اليوم كانت مستحيلة سابقًا ، بما في ذلك بسبب السرعة فقط. مرة واحدة يجب تحميل فيلم (ليس حتى بدقة 4K ، ولكن بدقة 1080p) لأشهر ، ثم لا يمكن للكمبيوتر تشغيله بسرعة 24 إطارًا في الثانية. وكيف يمكن مقارنة السرعة الحالية مع سرعة منخفضة للغاية بحيث لم تكن موجودة على الإطلاق؟

رد الفعل الثاني: نعم ، قد تستغرق بعض الأشياء التي انتقلت من سطر الأوامر إلى واجهة المستخدم الرسومية المزيد من الوقت هناك. أنا على استعداد للاعتقاد بأن Word في 2020 يبدأ بشكل أبطأ من محرر وحدة التحكم السادس في عام 1983 (لا يمكنني المقارنة شخصيًا: كانت هذه هي المرة الأولى التي كنت فيها على جهاز الكمبيوتر الخاص بي في التسعينات). ولكن إذا كان هذا مهمًا للغاية بالنسبة لك ، يمكنك استخدام سطر الأوامر للعديد من "المهام من الثمانينيات" في عام 2020 أيضًا. أنا أكتب هذا النص الآن في فيم - محرر رائع يساعد النظام البيئي الإضافي على مواكبة العصر. تبدو رائعة على شبكية العين الحديثة iMac: أصبحت الحروف واضحة للغاية ، ولا تزال تعمل على الفور. ما المشكلة؟

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

إلى جميع الأشخاص الذين يكتبون "كل شيء كان أسرع" ، لدي هذا السؤال: هل تتذكر هذا على سبيل المثال؟


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

مع بدء تشغيل الكمبيوتر ، كانت هناك أيضًا تغييرات كبيرة. الآن أجلس في aimak ، اضغط على مفتاح واحد ، وبعد ثانية أصبح جاهزًا للعمل (بفضل SSD ووضع السكون). عندما كنت في طفولتي كنت أنتظر تشغيل Windows من محرك الأقراص الصلبة ، لم أكن لأصدق أنني سأعيش لرؤية ذلك.

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

أو هنا فقدت ذاكرة أخرى في الوقت المناسب ، مثل الدموع في المطر. كانت هذه النكتة شائعة في العقد الأول من القرن الحادي والعشرين: "الكمبيوتر البطيء هو عندما تعرف أسماء جميع مطوري Photoshop." بالنسبة لأولئك الذين لا يعني هذا أي شيء: ثم كان Photoshop اللولبي شائعًا جدًا في روسيا ، وفي كل مرة تم إطلاقه ، كان على الروس أن ينظروا إليه لفترة طويلة:


أوه ، أدركت الآن أنني أعرف أحد هؤلاء الأشخاص - تحدث شون بارنت في مكاننا C ++ روسيا

قارن الآن. اليوم يمزحون "بمجرد أن يستغرق الأمر كيلوبايتين من الذاكرة لإطلاق رجل على القمر ، والآن تحتاج إلى غيغابايتين لإطلاق Slack." تبدو سيئة ، لكن هل تلاحظ الفرق؟ بغض النظر عن مقدار ذاكرة الوصول العشوائي التي يستهلكها RAM ، لا يواجه المستخدمون الوضع "يمكنك تناول الشاي في بداية البرنامج". أصبح كل شيء أفضل ، لكننا لم نلاحظ ذلك.

أو إليك قطعة أثرية تاريخية كاشفة: سلسلة Masyanya "تنزيل" (2002). يشعر الأبطال بالقلق الشديد بشأن قطع الاتصال ، حيث يجب عليك تنزيل الملف مرة أخرى.


يرجى ملاحظة أن الملف الذي يقومون بتنزيله يزن 591 كيلو بايت. الشخصيات قلقة من الاضطرار إلى إعادة تحميل نصف ميجابايت. هذه هي الحالة الحقيقية في عام 2002.

للمقارنة ، مثال جديد من الحياة. واجهتني مشكلة فنية صغيرة على جهاز Mac الخاص بي ، في Stack Overflow ، وجدت النصيحة "لتثبيت Xcode وقبول شروط الاستخدام". ردة فعلي: من الغريب تنزيل IDE 8 غيغابايت بنقرة واحدة ، ولكن إذا كان ذلك مفيدًا ، فلم لا.

أي أن حجم البرامج زاد على مر السنين (في وقت ماسيان من "8 غيغابايت IDE" سيحرك الناس شعرهم) ، ولكن أصبح تنزيلها أسهل بكثير ، وأصبحت حياتنا أفضل بكثير.

حسنًا ، المثال الأخير في هذا الجزء هو حول "تطبيقات الجوال المنتفخة". المنشورات الغاضبة مثل "في بعض الأحيان" تكتب عن هذا.أحجام التطبيقات خارج نطاق السيطرة ":" منذ متى بدأ LinkedIn يشغل 275 ميغابايت على الهاتف؟! " في عام 2018 ، كان من الممكن قراءة الشكوى "بعد تثبيت التطبيقات لم يكن لدي سوى غيغابايت للصور المتبقية".

لن أكذب ، هذه الـ 275 ميغابايت من LinkedIn تسبب لي أيضًا أسئلة. لكني أتذكر كيف كتبوا عام 2010 على حبري أن ألفا بنك لديه تطبيق جوال. كان يزن 30 ميغابايت - اليوم لم يكن مثل هذا الحجم قد أثار أي أسئلة على الإطلاق. ثم كتبوا في التعليقات:



هل تعرف لماذا؟ في تلك الأيام ، يمكن للمستخدم الروسي المشي ، على سبيل المثال ، مع HTC Hero. دعونا نلقي نظرة على خصائصه: "التخزين - 512 ميجابايت ، 165 للتطبيقات". 165 ميغا بايت في المجموع لجميع التطبيقات المثبتة! في مثل هذه الظروف ، كان عليّ أن أختار باستمرار أيها أكثر أهمية وأيها يمكنك العيش بدونها. ولتثبيت 30 ميغا بايت على المرء أن يهدم عدة أخرى في وقت واحد. كان الألم.

وإذا تمكنا من العودة إلى عام 2010 ، فاتصل بالناس الذين يعانون من هذا الألم ، وأخبرهم بالعبارة من عام 2018 ، "بعد تثبيت التطبيقات ، لدي فقط غيغابايت للصور المتبقية" ، أعتقد أننا سنتعرض للضرب. لن تبدو هذه الكلمات شكوى ، بل سخرية وتفاخر.

وحتى عام 2018 ، عندما ظهرت هذه الشكوى ، تمكن الوضع من التحسن: الآن تم تجهيز ميزانية Xiaomi Mi A3 في الإصدار الأساسي بـ 64 غيغابايت ، لذلك بعد تثبيت التطبيقات سيكون من الواضح أن هناك أكثر من واحد مجاني.

نعم ، نمت التطبيقات بشكل ملحوظ على مدى 10 سنوات. لكن حجم المساحة في نفس الوقت نما المئات. أي أن الحياة أصبحت أفضل بعشر مرات.

وهل تتذكر ما كان عليه استخدام الهاتف الذكي في عام 2010 وكم من الآلام المختلفة "يتباطأ كل شيء" هناك؟

  • يعني مقدار صغير من ذاكرة الوصول العشوائي أن التطبيق كان عليه أن يعمل باستمرار من الصفر ، ولا يتحول على الفور إلى واحد قيد التشغيل بالفعل.
  • وأطلقت المعالجات منخفضة الطاقة ببطء شديد من الصفر.
  • لا أريد أن أتذكر سرعة الإنترنت عبر الهاتف النقال.
  • , USB 2.0 .

بدا استخدام الهاتف الذكي وكأنه توقع ثابت: بغض النظر عما تريد القيام به ، فإن هذا يشمل فترات من "الوقوف والبكم". إذا كنت في الشارع وتحتاج إلى خريطة ، فأنت تقف ساكنًا وتنتظر أولاً حتى يبدأ التطبيق في التصميم ، ثم تنتظر عندما يتم تحميل الخريطة فيه. وتدفع بشكل كبير مقابل حركة المرور المستهلكة في نفس الوقت.

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

: « » . , , . .



«»


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

كمثال توضيحي صغير. في عام 2018 ، كان هناك نص مثير لنيكيتا بروكوبوف حول "البرامج المدللة" ، ومن بين أشياء أخرى كانت هناك عبارة "خدمات Google Play التي لا أستخدمها (لا أشتري كتبًا أو موسيقى أو مقاطع فيديو هناك) - 300 ميغابايت تجلس هنا فقط والتي لا يمكن إزالتها ".

بقراءة هذا ، أريد أن أكون مليئًا بالغضب الصالح ، نعم. ولكن هناك تحذير: في الواقع ، لا تتعلق خدمات Google Play بـ "شراء الكتب". يتضمن العديد من واجهات برمجة التطبيقات المختلفة ، وكما وردويكيبيديا ، "يتم التحكم في جميع خدمات Android الرئيسية من خلال خدمات Google Play". هذا ، في جميع الاحتمالات ، يستخدم نيكيتا هذا البرنامج بنشاط ، ولا يعرف عنه بنفسه - فقط أعطته Google اسمًا محيرًا.

لا يتمثل هدفي هنا في انتقاد منشور معين ، ولكن لإظهار نهج عام: غالبًا ما نذكر "الطلبات المنتفخة / البطيئة بدون سبب وجيه" ، وليس فهم هذه الأسباب بشكل كامل. لقد أضافوا شيئًا إلى التطبيق ، ولدى مطوريه معلومات تفصيلية حول ما هو بالضبط ولماذا ، ولكن ليس لدينا ذلك - ولكن لسبب ما نعتبر أنفسنا أكثر كفاءة منهم في هذا الأمر.

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

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



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

خذ ، على سبيل المثال ، Project Treble من Android 8.0. من المعروف أن Android يعاني من مشكلة كبيرة: في حين أن أجهزة iPhone يتم تحديثها بسهولة إلى إصدارات نظام التشغيل الجديدة ، فإن هواتف Android عادةً ما تبقى إلى الأبد مع الإصدار المثبت مسبقًا ، لأن مصنعيها لا يريدون العبث. وبدأت جوجل في تعديل واسع النطاق للهندسة المعمارية بأكملها من أجل تبسيط حياة الشركات المصنعة وتحفيز التحديثات. وعلى الرغم من أن Treble لم يحل المشكلة تمامًا ، إلا أن الإحصائيات تُظهر تحسنًا ملحوظًا. أي ، من أجل التعامل مع مشكلة ملحة ، استثمرت Google الكثير من العمل (إعادة بناء مثل هذا العملاق ليس أمرًا جيدًا بالنسبة لك للركوب على النافذة) ، وتم تحسين الوضع جزئيًا. في رأيي ، تحتاج الشركة فقط للتعامل مع المشاكل المؤلمة ، فعلوا كل شيء بشكل صحيح.

أخبرني الآن: إذا لم تكن مطورًا للهواتف المحمولة ، فهل سمعت عن هذا على الإطلاق؟ عندما التقطت هاتفًا لأول مرة باستخدام Android 8.0+ ، هل أثر ذلك بطريقة ما على رأيك حول الإصدار الجديد؟ من غير المحتمل ، لأنه في الأشهر الأولى من استخدام الهاتف ، لا يظهر هذا على الإطلاق للمستخدم. يمكنك فقط ملاحظة الوقت الذي سيتم فيه إصدار الإصدار الجديد من Android. وفقط إذا كانت الشركة المصنعة للهاتف من بين أولئك الذين تمكنت Treble من تحديث الأجهزة. وحتى في هذه الحالة ، قد لا يدرك المستخدم أن التحديث يرجع إلى Google ، ولا يزال يقول "لم يتم تنفيذ أي شيء مفيد لمدة ثماني سنوات".

وهذا الوضع نموذجي - "الجزء تحت الماء من الجبل الجليدي" كبير بشكل عام. عندما قدم Android تعريف Adaptive Battery (التعريف "الذكي" ، أي التطبيقات التي يمكن أن تحتوي على بطارية في الخلفية) ، هل قمت بقياس ما إذا كان استهلاك الطاقة في هاتفك قد تغير؟ عندما تتولى حماية Google Play في الخلفية أمانك ، هل تتذكر أنه لم يكن من قبل؟ عندما أضفت دعمًا لبرنامج ترميز الفيديو AV1 ، هل تعتقد أن المستقبل مع برنامج الترميز هذا محتمل جدًا وأن مثل هذا الدعم مفيد؟ أو هل تلتقط الهاتف فقط ، والرموز التعبيرية مذهلة ، لكن دعم AV1 ليس ملفت للنظر؟

بعد نشر هذا المنشور ، ظهر خيط رائع منلانييتضخم هذا البرنامج إلى حد كبير بسبب التعامل مع المواقف النادرة. ثم ما يحدث: بالنسبة لـ 1٪ من الحالات عندما تنشأ هذه المواقف ، أصبح كل شيء أفضل بكثير - لكن 99٪ من الأشخاص الذين لا يواجهون هذه المواقف النادرة لا يمكنهم تقييم التغييرات بشكل صحيح.



ويترتب على ذلك أنه عندما نقسم بشكل جماعي على جميع "التطبيقات المنتفخة والمثبطة" ، كانت هناك أسباب موضوعية لذلك في كثير من الحالات. في مكان ما ، خلال ساعات العمل ، كان الناس يزنون بعناية جميع الإيجابيات والسلبيات ، وناقشوها مع بعضهم البعض ، وتوصلوا إلى استنتاج مفاده أن الإيجابيات تفوق. ثم نأتي ، ليس لدينا أي فكرة عما كان على الميزان ، ولن نقضي بعض الوقت في الدراسة المدروسة ، فنحن لا نرى سوى الحجم المتغير - ونخلص إلى استنتاج واثق "كل شيء ساء".

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



انتباه الأداء


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

اسمع ، هذا ببساطة غير صحيح. كمثال منفصل: تمت إعادة كتابة Facebook Messenger مؤخرًاويذكر أن الإنتاجية تضاعفت وانخفض حجمها أربعة أضعاف. وإلى الكلمات أعلاه أن تطبيق LinkedIn يزن 275 ميجابايت - لقد راجعته الآن ورأيت الكلمات "195.4 ميجابايت" في App Store ، يبدو أنها تمكنت أيضًا من تقليلها بمقدار مرة ونصف. أي أن الشركتين فكرت بوضوح في استهلاك الموارد ، وخصصت الكثير من العمالة للحد منها ، والتي يمكن إنفاقها على "قطع الميزات".

وبما أنني أعمل مع مؤتمرات للمطورين وتتقاطع مع العديد منهم (ومن مجموعات مختلفة) ، يمكنني أن أرى الموضوعات التي يهتمون بها. ما الذي يستمعون إليه لتقاريرهم ، وما يتحدثون عنه ، ويكتبون المشاركات.

والإنتاجية هي بالضبط أحد تلك الموضوعات. بأسماء تقارير مثل "تحسين وقت إطلاق تطبيقات iOS"يمكن رؤيته: المطورون على استعداد لقضاء 60 دقيقة للاستماع إلى مللي ثانية.

يتحدثون عن الأداء في كل مكان - حتى في عالم جافا سكريبت ( "أداء جافا سكريبت من خلال زجاج المنظار" ) ، على الأقل في تطوير الأجهزة المحمولة ( "كيفية احتواء مليون نجم في iPhone" ). ولكن الأهم من ذلك كله يقولون في الخلفية. أعتقد أن هذا يرجع إلى أن المستخدمين يشترون الهواتف الذكية لأنفسهم ، ولكن في الخلفية ، تدفع الشركة مقابل قوة الحوسبة ، لذلك هناك دافع مالي قوي للتحسين.

لقد قمت مؤخرًا بتجربة بسيطة: لقد فتحت برنامج مؤتمر جافا الخاص بنا JPointونظرت في عدد أوصاف الأداء حول الأداء. في وقت لاحق ، بسبب الفيروس التاجي ، قمنا بتأجيل المؤتمر إلى يونيو ، حتى يتغير البرنامج ، ولكن النتائج تدل على أي حال. هم انهم:

  • "سيكون هذا الحديث عن ضبط أداء المنتج".
  • "خذ بعين الاعتبار طرق تحسين الإدخال / الإخراج للملف"
  • "ربما بالنسبة لإحدى الوحدات التي ترغب في الحصول على أداء أكثر مما يمكنك التخلص منه من جافا؟"
  • "ما التحسينات المتعلقة بنقاط الأمان التي يقوم بها HotSpot JVM؟" ما الذي يجب على المطورين تذكره لتجنب التوقف المؤقت غير المرغوب فيه؟ "
  • "مشروع فالهالا وأنواع مضمنة وكل شيء من حولهم ، من نموذج البرنامج إلى الأداء"
  • "تحسين أداء الاستعلام والإنتاجية واستهلاك الذاكرة"
  • "التقرير مخصص لتحليل مفصل لكيفية حدوث عملية الكتابة لقاعدة بيانات Apache Cassandra من حيث الأداء."

اسمع ، إذا أجريت هذه التجربة كلعبة للشرب ، لكانت قد شربت في النهاية. بالعين المجردة يمكنك أن ترى: مطورو جافا يهتمون بكيفية عمل شفرتهم ليس فقط للعمل ، ولكن أيضًا بسرعة.

علاوة على ذلك: غالبًا ما تثيرهم كثيرًا! لقد سمعت مرارًا وتكرارًا من الأشخاص الذين يشاركون عن كثب في الأداء أنه من السهل المبالغة في الأداء. على سبيل المثال ، من أجل زيادة طفيفة في الإنتاجية ، يستخدم الناس نوعًا من الاختراق القذر ، مما يخلق في النهاية مشاكل أكثر مما يحلونه. حسنًا ، حول ذلك كان في الكلمة الرئيسية الجميلة لـ Alexey Shipilev في JPoint 2017 ، قمنا بفك تشفير Habr .



للتلخيص: في حين يرثي الإنترنت "كان المطورون كسالى وتوقفوا تمامًا عن التفكير في المكابح" ، في الواقع ، يفكر العديد من المطورين بها أكثر من اللازم .



المعنى والنفعية


والآن ، في رأيي ، أهم أطروحة.

نعم ، تتطلب التطبيقات بمرور الوقت المزيد والمزيد من الموارد ، وأحيانًا بأحجام كبيرة. نعم ، لقد بدأنا في جر المزيد في مشاريعنا ، حتى عندما يكون هناك شيء غير ضروري هناك ، بدلاً من قضاء الوقت في عزل "الضرورة القصوى". انها حقيقة.

لكني أعتقد أن التطبيقات المتنامية لا تجعل المطورين الحاليين حمقى غير أكفاء. علاوة على ذلك ، فإن العكس هو الصحيح:

سيكون المطورون حمقى إذا لم تنمو التطبيقات.

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

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

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

وينطبق الشيء نفسه على البرمجيات. إذا كان عصر الهواتف الذكية ذات الميزانية المحدودة يحتوي على 64 غيغابايت لكل منها ، فسوف نختبر "سيعمل وقت Kotlin على زيادة تطبيقنا بمقدار ميغابايت" ، ثم سنتحول إلى هذه العائلة. استرخ ، مكان لذلك ضروري لشيء ما فيه. إذا تم إهدارها ، فلا أحد أفضل. إذا كان هناك مساحة كبيرة ، ولسبب ما هناك حاجة إلى بيانو ، فيمكنك إعداده بأمان دون القلق بشأن السنتيمترات المربعة.

سلاك - هذا هو البيانو. حسنًا ، يأكل الكثير من الذاكرة ، ولكن هل سمعت أن أشخاصًا من غير تكنولوجيا المعلومات يشتكون منه كما كانوا يشكون من Photoshop؟ وفقًا لمشاعري ، يمتلك المستخدمون العاديون بالفعل مساحة كافية بحيث لا يمنعهم هذا "البيانو" من "التجول في أرجاء الغرفة". نعم ، يمكنك استبداله ببيانو وتوفير مساحة. ولكن إذا كنت تعيش في قصر ، وعلى مر السنين أصبحت مساحة القصر أكبر ، فلماذا؟

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

وفي مثل هذه الحالة ، من المحموم تجنب كل شيء يشغل الذاكرة ، عندما يكون هناك الكثير بالفعل - إنه مثل مدير المهام المحمول ، حيث يقوم المستخدمون بضرب التطبيقات قيد التشغيل من أجل "مسح ذاكرة الوصول العشوائي". في كثير من الأحيان ، قال منشئو منصات الجوّال: "توقف ، أيها المجنون. سيقتل النظام نفسه التطبيقات إذا لم يكن هناك ذاكرة كافية ، ولماذا يجب أن يتم مسمرها من قبل؟ ما الفائدة من شراء هاتف ذكي بكمية كبيرة من ذاكرة الوصول العشوائي ، ثم الاحتفاظ به فارغًا وعدم استخدام ما دفع ثمنه؟ "


يبدو الأمثل. هل تريد العيش هنا؟

وأتذكر أيضًا القصة مع "خطأ 2000". يتذكر شخص من متخصصي تكنولوجيا المعلومات في منتصف القرن العشرين في الشيخوخة: “كنا من بين أولئك الذين أنجبوها. ثم قمنا بحفظ كل بايت. وعندما توصلنا إلى فكرة أنه يمكنك الاحتفاظ بالسنة برقمين ، وليس أربعة ، شعرنا بذكاء شديد. لقد حفظنا وحدتي بايت في كومة من الأماكن! وبحلول نهاية القرن فقط أصبحت العواقب واضحة ».

نعم ، في ذلك الوقت ، يبدو أن تسجيل العام برقمين يبدو قرارًا معقولًا. وهي تجسد مباشرة كل من يدافع عن نهج "دقيق". هذا هو المكان الذي ذهبوا فيه بالفعل إلى الحد الأقصى في رعاية الموارد.

ولكن بعد ذلك ، بعد سنوات عديدة ، كان على الآخرين أن ينفقوا الكثير من الموارد لمعرفة نتائج هذا القرار ومنع المشاكل.

والآن ، عندما لن يتمكن البايتان المحفوظان من مساعدة أي شخص ، والعواقب السلبية معروفة ، سيكون من الغريب جدًا الحفاظ على العام على هذا النحو.

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

, « , , ». .

— . , , .

, - ( ), . .




أتوقع الاعتراض في التعليقات: "لكن المهمة X بدأت تنفذ بشكل أبطأ بالنسبة لي مما كانت عليه قبل 13 عامًا ، أعيدني إلى عام 2007".

لا تفهموني خطأ: أنا لا أحاول أن أقول أنه لا توجد مثل هذه المهام. يوجد . والإفراط في استخدام التبعيات يحدث بالفعل. ويحدث bloatware. عندما أسمع أن هناك تحرير فيديو في Photoshop ، أشعر بنفس الشعور "لماذا" مثلك. عندما قرأت أن إنشاء أي تطبيق باستخدام create-response-app يعني على الفور 4304 دليلاً يحتوي على 28678 ملفًا ، لدي أيضًا سؤال عما إذا كنا قد ذهبنا إلى مكان آخر. هناك العديد من القضايا الحقيقية التي تستحق الحديث عنها.

ادعائي الوحيد هو أنه فيما يتعلق بهذه المشاكل ، هناك نوع من الطائفة الراديكالية التي تؤمن بالنهاية القريبة للعالم بسبب انتشار البرمجيات. يعيدون كتابة التاريخ في هذا القسم ("كان يعمل بشكل أسرع!") ، ويسيئون فهم ما يحدث ("لماذا نما Windows على مر السنين ، ولم يتغير شيء هناك حقًا") ، ويقال أشياء غير مستحقة عن المطورين ("لا يريدون تحسين أي شيء ") ونذهب إلى أقصى الحدود" لننقذ كل بايت ، حتى عندما يجعل المستخدمين أسوأ. " دعنا لا نفعل ذلك.

بالطبع ، اعتراضاتي على الموقف الراديكالي كانت أيضًا راديكالية إلى حد ما (فقط في الاتجاه المعاكس). يمكنك أيضًا العثور على خطأ معهم ، ويمكن أيضًا أن يطلق عليهم اسم طائفة. لكن الغرض من هذا المنشور ليس جعل كل كلمة من كلماتي تعتبر الحقيقة المطلقة. هدفها هو جعل الناس أقل مشاركة في الطوائف.

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

وإذا أخبرك أحد ، بما في ذلك أنا ، بخلاف ذلك - فهذا طائفي ، قم بمطاردته في عنقه.

All Articles