برنامج كود الأمثل. الميزات الرئيسية لتحسين الكود بواسطة المبرمج والمترجم

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

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

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

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

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

المراحل الرئيسية لتحسين كود الموقع

  • إن إبراز عناوين h1-h6 هو عبارة عن روبوتات البحث بشكل عام ، لذلك لا تنس التنسيق الصحيح للنص.
  • تقليل حجم الشفرة - فكلما قل الرمز ، كان تحميل الصفحة أسهل وأسرع. في الآونة الأخيرة ، أصبحت سرعة تحميل الصفحة عاملاً مهمًا في الترتيب جوجل سيربالذي تم الإعلان عنه رسميًا.
  • إزالة كود خبيث- يوجد لدى العديد من الاستضافة قسم لمكافحة الفيروسات يقوم بمسح ملفات الموقع ويشير إلى المسار إلى حلها. إن عدم وجود شفرة ضارة يجعل الموقع أكثر تفضيلاً من قبل محركات البحث.
  • تحسين الموقع الداخلي- إنشاء نص فريد يدعم الكثافة المطلوبة للكلمات الرئيسية.
  • - يوزع وزن الصفحة بالتساوي ويزيد حركة الاستعلامات منخفضة التردد ، خاصة عند إضافة محتوى جديد.
  • إضافة علامات التعريف - يتم استخدام العنوان والكلمات الرئيسية والوصف بواسطة الأعمال ويتم عرضها على صفحات نتائج البحث. تزيد العلامات الوصفية المكونة بشكل صحيح من أهمية الصفحات وتجذب المستخدمين.
  • تحسين الصورة - يجب تحديد كل صورة بالتنسيق الأمثل (GIF و JPEG و PNG و PNG-24) ، بالإضافة إلى البديل والعنوان.

صلاحية كود الموقع

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

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

ومع ذلك ، بالنسبة إلى الموارد الأصغر ، تعد صلاحية كود html مكافأة ممتازة لترتيب الاستعلامات الأكثر تنافسية ، كما ستُظهر جدية المورد.

تحسين أوراق الأنماط المتتالية

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

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

وضع الترميز

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

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

تحسين الموقع الداخلي

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

خاتمة

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

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

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

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

كيفية تحسين كود الموقع?

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

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

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

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

لأجهزة الكمبيوتر:

1. يجب الإصلاحوهذا خطأ كبير!

استخدم ذاكرة التخزين المؤقت للمتصفح!
إذا قمت بتحديد تاريخ أو تاريخ انتهاء صلاحية الموارد الثابتة في رؤوس HTTP ، فسيقوم المستعرض بتنزيل الموارد التي تم استلامها مسبقًا من قرص محليوليس من الإنترنت.
استخدم ذاكرة التخزين المؤقت للمتصفح للموارد التالية:

http://directstat.ru/script (بدون تاريخ انتهاء الصلاحية) https://prostolinux.ru/karta- saita / (لم يتم تحديد انتهاء الصلاحية) https://prostolinux.ru/prostolinux.png (انتهاء الصلاحية غير محدد) (انتهاء الصلاحية غير محدد) (انتهاء الصلاحية غير محدد) https://prostolinux.ru/wp-content/themes / rockwell_new / rockwell / css /jquery.lightbox-0.5.css (انتهاء الصلاحية غير محدد) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/orange.css (لم يتم تحديد انتهاء الصلاحية) https: //prostolinux.ru/wp -content / theme / rockwell_new / rockwell / css / superfish.css (لا يوجد تاريخ انتهاء الصلاحية) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_body. jpg (بدون تاريخ انتهاء الصلاحية) https: / /prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_dotted_vert.gif (لا يوجد تاريخ انتهاء الصلاحية) https://prostolinux.ru/wp-content/themes/ rockwell_new / rockwell / images / bk_menu_orange.jpg (لا تاريخ انتهاء الصلاحية wiya) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bullet_top.jpg (لم يتم تحديد تاريخ انتهاء الصلاحية) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images /ico_date_orange.png (بدون تاريخ انتهاء الصلاحية) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/topmenu_border_orange.jpg (لا يوجد تاريخ انتهاء الصلاحية) https://prostolinux.ru/wp-content / theme /rockwell_new/rockwell/js/copy.js (لم يتم تحديد انتهاء الصلاحية) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js (غير محدد) تاريخ انتهاء الصلاحية ) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js (لم يتم تحديد انتهاء الصلاحية) (لم يتم تحديد انتهاء الصلاحية) https: // prostolinux.ru/wp -content / theme / rockwell_new / rockwell / style.css (لم يتم تحديد انتهاء الصلاحية) https://prostolinux.ru/wp-includes/images/smilies/icon_smile.gif (لم يتم تحديد انتهاء الصلاحية)

هنا ما زلت لا أفهم على الإطلاق ما هي فترة الصلاحية ، وأين يجب الإشارة إليها. أنت تعرف؟

2. النظر في الإصلاح

قم بإزالة JavaScript و CSS التي تحظر العرض من أعلى الصفحة.

عدد البرامج النصية المحظورة لكل صفحة: 1. عدد موارد CSS المحظورة لكل صفحة: 4. أنها تبطئ عرض المحتوى.
يتم عرض كل المحتوى الموجود أعلى الصفحة فقط بعد تنزيل الموارد التالية. حاول تأخير تحميل هذه الموارد أو تحميلها بشكل غير متزامن أو تضمينها بنفسك مكونات مهمةمباشرة في كود HTML.
قم بإزالة JavaScript الذي يحظر العرض:

https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js

تحسين عمل CSSعلى الموارد التالية:

https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/style.css
https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/orange.css
https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/jquery.lightbox-0.5.css
https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/superfish.css

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

3. تصغير JavaScriptهو متوسط ​​مستوى الخطأ. سيؤدي إصلاح الخلل إلى تسريع الموقع قليلاً.
يسمح لك ضغط كود JavaScript بتقليل كمية البيانات لتسريع التحميل والمعالجة والتنفيذ.
قم بتصغير كود JavaScript في الموارد التالية لتقليل حجمها بمقدار 19.4 كيلوبايت (46٪
سيؤدي تقصير https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js إلى تقليل الحجم بمقدار 14 كيلوبايت (41٪
سيؤدي تقصير https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js إلى تقليل الحجم بمقدار 5.4 كيلوبايت (64٪
4. تحسين الصور - هذا هو متوسط ​​معدل الخطأ. سيؤدي إصلاح الخلل إلى تسريع الموقع قليلاً.

يمكن أن يؤدي التنسيق والضغط الصحيحان للصور إلى تقليل حجمها.

قم بتحسين الصور التالية لتقليل حجمها بمقدار 5 كيلوبايت (14٪
إذا ضغطت صورة دون فقدان البيانات ، فسيتم تقليل حجمها بمقدار 2 كيلوبايت (8٪
إذا ضغطت الصورة بدون فقدان بيانات https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/ico_date_orange.png ، فسيؤدي ذلك إلى تقليل حجمها بمقدار 1.7 كيلوبايت (31٪)
إذا قمت بضغط الصورة بدون خسارة http://avatars-fast.yandex.net/get-direct/nubNH6Z6vqKZZtboVlYcQg/y80 ، فسيؤدي ذلك إلى تقليل حجمها بمقدار 1.3 كيلوبايت (19٪)

5. تقليل وقت استجابة الخادم - هذا هو متوسط ​​معدل الخطأ. سيؤدي إصلاح الخلل إلى تسريع الموقع قليلاً.

وفقًا لنتائج الاختبار ، كان وقت استجابة الخادم الخاص بك 0.24 ثانية. يتأثر هذا المؤشر بالعديد من العوامل. اقرأ أفضل ممارساتنا وتعلم كيف يمكنك تتبع وقت الاستجابة وقياسه.

لم أكن أعتقد أنه كان كثيرًا ، لكن يبدو أن الأمر يتعلق باستضافة ، تحتاج إلى معرفة ذلك.
6. تصغير HTMLهو متوسط ​​مستوى الخطأ. سيؤدي إصلاح الخلل إلى تسريع الموقع قليلاً.
يؤدي ضغط كود HTML (بما في ذلك كود JavaScript أو CSS المضمن) إلى تقليل كمية البيانات لتسريع التحميل والمعالجة.

تصغير كود HTML في الموارد التالية لتقليل حجمها بمقدار 1.7 كيلوبايت (8٪
سيؤدي تقليل https://prostolinux.ru/kak-usilit-signal-3g-modema/ إلى تقليل الحجم بمقدار 1.7 كيلوبايت (8٪

للجوال:

هنا جميع الأخطاء هي نفسها ، ولكن مع اختلاف ذلك تم تصنيفها جميعًا على أنها بالغة الأهمية!

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

نعم ، لم أقل أين أظهر لي Google هذه الأخطاء. وأظهرها لي في لوحة Google Adsense. أو يمكنك فقط الانتقال إلى https://developers.google.com/speed/pagespeed/insights/ ومعرفة ما يجب إصلاحه ، لأنه ليس من السهل تحسين الكود على الموقع ، ولكن ما عليك سوى القيام به مرة واحدة.

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

حلول.

1. قم بتشغيل الضغط.

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

يقوم SetOutputFilter DEFLATE Header بإلحاق Vary User-Agent FileETag حجم MTime ExpiresActive on ExpiresDefault "الوصول بالإضافة إلى شهر واحد" SetOutputFilter DEFLATE

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

أظهر تحليل الصفحة أن بعض النصوص البرمجية للنماذج تتداخل مع تحميل الصفحة. تمت إزالة العديد من البرامج النصية للنموذج التالي من header.php:

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

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

الشرط الرئيسي الذي يتم إجراؤه عادةً لطريقة التحسين هو أن البرنامج المُحسَّن يجب أن يكون له نفس النتيجة والآثار الجانبية على نفس مجموعة بيانات الإدخال مثل البرنامج غير المُحسَّن. ومع ذلك ، قد لا يلعب هذا المطلب دورًا خاصًا إذا كان من الممكن اعتبار المكاسب من استخدام التحسين أكثر أهمية من عواقب تغيير سلوك البرنامج.

أنواع التحسين

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

هناك مفاهيم مثل التحسين عالي المستوى ومنخفض المستوى. يتم تنفيذ التحسينات عالية المستوى في الغالب بواسطة مبرمج ، والذي يعمل مع كيانات مجردة (وظائف ، إجراءات ، فئات ، إلخ) ويتخيل نموذجًا عامًا لحل مشكلة ، يمكنه تحسين تصميم النظام. عادةً ما يشار إلى التحسينات على مستوى الكتل الهيكلية الأولية للشفرة المصدر (الحلقات ، الفروع ، إلخ) على أنها مستوى عالٍ ؛ البعض يفردهم كمستوى منفصل ("متوسط") (N. Wirth؟). يتم إجراء التحسين منخفض المستوى في مرحلة تحويل كود المصدر إلى مجموعة من تعليمات الآلة ، وغالبًا ما تخضع هذه المرحلة للأتمتة. ومع ذلك ، يعتقد مبرمجو لغة التجميع أنه لا يمكن لأي آلة أن تتفوق على مبرمج جيد في هذا (بينما يتفق الجميع على أن المبرمج السيئ سيجعل الآلات أسوأ).

اختيار المنطقة المراد تحسينها

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

في الواقع ، من الناحية العملية ، غالبًا ما يتم إجراء التحسين بعد مرحلة البرمجة "الفوضوية" (تتضمن أشياء مثل "" ، "سنكتشفها لاحقًا" ، "سنفعلها على أي حال") ، لذا فهي مزيج من التحسين وإعادة البناء والتثبيت: تبسيط التركيبات "الفاخرة" مثل strlen (path.c_str ()) ، الشروط المنطقية (a.x! = 0 && a.x! = 0) ، إلخ. ملفات التعريف بالكاد مناسبة لمثل هذه التحسينات. ومع ذلك ، لاكتشاف مثل هذه الأماكن ، يمكنك استخدام برامج - أدوات للعثور على الأخطاء الدلالية بناءً على تحليل عميق لشفرة المصدر - بعد كل شيء ، كما ترون من المثال الثاني ، يمكن أن تكون الشفرة غير الفعالة نتيجة أخطاء (مثل الأخطاء المطبعية في هذا المثال - على الأرجح ، a.x! = 0 && a.y! = 0). سوف يكتشف الشخص الجيد مثل هذا الرمز ويعرض رسالة تحذير.

ضرر التحسينات والاستفادة منها

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

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

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

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

#يشمل Struct C (C () () C (const C &) (الأمراض المنقولة جنسيا :: cout<< "A copy was made.\n"; } }; C f() { return C(); } int main() { std::cout << "Hello World!\n"; C obj = f(); }

يمكن أن تحتوي على عدة خيارات إخراج:

مرحبا بالعالم! تم عمل نسخة. تم عمل نسخة. مرحبا بالعالم! تم عمل نسخة. مرحبا بالعالم!

ومن المفارقات أن جميع الخيارات الثلاثة قانونية ، حيث يسمح معيار اللغة بحذف استدعاء مُنشئ النسخ في هذه الحالة ، حتى إذا كان للمنشئ آثار جانبية (§12.8 نسخ كائنات الفئة ، البند 15).

حصيلة

وبالتالي ، لا تنس تحسين الكود ، باستخدام أدوات برمجية متخصصة إن أمكن ، ولكن يجب أن يتم ذلك بعناية وحذر ، وفي بعض الأحيان الاستعداد لمفاجآت من المترجم.

استوديو PVS

قائمة ببليوغرافية

  • إي تانينباوم. هندسة الحاسوب.
  • المترجمون Wirth N. Building compilers.
  • كنوت د. فن البرمجة ، المجلد 1. الخوارزميات الأساسية.
  • Zubkov S.V. المجمع لنظام التشغيل DOS و Windows و UNIX.
  • ويكيبيديا. تحسين الكود.
  • ويكيبيديا.

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

تحسين كود HTML

لكي تساهم كود HTML في التحميل السريع للموقع ، يجب أن تستوفي عدة شروط:

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

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

تقليل الكود وتحسين CSS

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

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

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

بعض الطرق لتحسين بنية CSS يدويًا:

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

محسنات CSS و HTML

يمكنك التحسين بشكل ملائم وسريع مباشرة في المتصفح باستخدام خدمات خاصة ، على سبيل المثال:

  • CleanCSS.com ؛
  • مُحسِّن CSS ؛
  • ضاغط CSS
  • CYPR.com ؛
  • التحسين التلقائي للمكوِّن الإضافي.

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

لدى CY-PR.com أيضًا أداة تحسين مماثلة تخفف بنية CSS بنسبة 25-30٪ ، ولكن لا توجد طريقة لإنشاء ملف كود بعد العملية.

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

بعد التحسين ، يجب عليك التحقق من أداء الموقع ، والعرض الصحيح للتصميم ، وسرعة التنزيل. الوضع الطبيعي هو الحالة التي لا يتم فيها تحميل الصفحات وخيارات المستخدم الخاصة بالموقع لأكثر من 3-5 ثوانٍ.

للتحقق من درجة التحسين وفهم مدى كفاءة كتابة كود HTML الآن ، يمكنك استخدام خدمات مثل:

  • optimization.com ؛
  • بوابة SEO-Checklist؛
  • البرنامج المساعد فايربوغ.

ستساعدك هذه الأدوات في التحقق مما إذا كان قد تم القيام بكل شيء لتقليل كمية كود HTML وتحسين هيكلها. في مورد قائمة مراجعة تحسين محركات البحث (SEO) ، يمكنك التحقق من قائمة ما تم إنجازه بالفعل من أجل التحسين ، وما لم يتم القيام به بعد ، وتعيين علامة على الأعمال المكتملة.

تصديق

يمكنك التحقق من رمز الموقع بحثًا عن أخطاء باستخدام خدمات التحقق من الصحة - المدققون. يتم التحقق من صحة الكود بكفاءة باستخدام validator.w3c.org

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

من المرجح أن يحتل الموقع الذي يحتوي على شفرة مصححة ومحسّنة مرتبة عالية في نتائج البحث مقارنة بالمورد الذي يحتوي على كود HTML محمّل بشكل زائد يحتوي على أخطاء.

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

التحسين من قبل المبرمج.

1). قم بتوسيع هيكل البيانات عن طريق إضافة معلومات إضافية أو تغيير تمثيل البيانات في هذا الهيكل. 2). احسب النتائج مقدمًا وقم بتخزينها لاستخدامها لاحقًا. 3) . تطبيق تغليف البيانات. 4) . يجب أن تحتوي الحلقة الداخلية على أقل عدد ممكن من الشيكات ، والأفضل من ذلك كله ، أن تحتوي على واحدة فقط. 5) . إزالة القفزات غير المشروطة. 6) . يجب ترتيب عمليات التحقق المنطقية بحيث تأتي الشروط الأسرع التي يُرجح أن تكون صحيحة قبل الظروف الأبطأ التي من غير المرجح أن تكون صحيحة. 7). يمكن استبدال وظيفة منطقية على مجموعة صغيرة من القيم الأولية بجدول يمثل هذه المجموعة. 8). إزالة التعبيرات المكررة. 9). إذا تم غالبًا تقييم تعبيرين متطابقين أو أكثر على التوالي ، فيجب نقلهما إلى روتين فرعي. 10) . تغيير أنواع البياناتيمكن أن يكون وسيلة فعالة لتقليل التعليمات البرمجية وتحسين أدائها. 11) . إعادة كتابة التعليمات البرمجية بلغة منخفضة المستوى.إذا كان الأداء منخفضًا ، فيجب إعادة كتابة الكود بلغة منخفضة المستوى. إذا كنت تكتب بلغة C ++ ، فقد تكون لغة المستوى المنخفض هي Assembler. عادةً ما يكون لإعادة كتابة التعليمات البرمجية بلغة منخفضة المستوى تأثير إيجابي على أداء الكود.

تحسين المترجم.

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

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

42. تصميم البرامج: النقاط الرئيسية.

1) وصف التنفيذ (اللغة ، بيئة البرمجة ، الاختبار ، التنفيذ المقصود):

الأحجام بالبايت والعمليات والخطوط ؛

حجم الذاكرة المطلوبة للبيانات ؛

الموارد الفنية المطلوبة.

2) الوصول إلى الروتين الفرعي (عدد ونوع وترتيب نقل معلمات الإدخال): طريقة النقل (بالإشارة أو بالقيمة).

3) وصف المعلمات التي تم إرجاعها:

تم إرجاع معلمة بواسطة الوظيفة نفسها ؛

وصف معلمات الإدخال التي تعدلها الوظيفة.

4) وصف المواقف الاستثنائية ورد فعل البرنامج عليها.

5) وصف رسائل البرنامج إن وجدت.

6) وصف موجز للخوارزمية:

إذا كان له اسم ، فاذكره ؛

اسم المصدر أو مكان تقديم نص البرنامج ، حيث تم أخذ الخوارزمية ؛

يمكنك توفير مخطط كتلة.

8) وصف جميع ملفات الإدخال والإخراج وملخصًا موجزًا ​​لمحتوياتها.

9) سرد هياكل التسجيل لجميع الملفات:

التقسيم حسب حقول التسجيل ؛



تحميل...
قمة