Optimierung des Programmcodes. Hauptmerkmale der Codeoptimierung durch den Programmierer und Compiler

Ich begrüße Sie, liebe Freunde, auf der Blog-Site. Die meisten Benutzer nehmen Websites nur äußerlich wahr und bewerten Design und Struktur, aber hinter attraktiven externen Komponenten verbergen sich viele interne Gesetze und Regeln, die durch W3C-Standards definiert sind. Die internen Komponenten umfassen HTML-Code und CSS-Stile (ohne separate Funktionalität). Webmaster sind oft mehr mit dem Erscheinungsbild der Website beschäftigt. Aber auch der interne Inhalt von Seiten in Form von HTML-Code erfordert Aufmerksamkeit, insbesondere wenn es darum geht, Suchverkehr anzuziehen.

Eine gute interne Website-Optimierung ist für eine erfolgreiche Online-Werbung unerlässlich. Natürlich ist die Optimierung für Suchmaschinen vor der Promotion ein wichtiger Punkt. Website-Promotion mit Links Ohne Optimierung wird es nicht effektiv sein und kann sogar schaden, indem es seine Teilnahme verringert. Gleichzeitig ist es notwendig, alle aktuellen Probleme und Mängel zu identifizieren, die in jedem Stadium alle Errungenschaften zunichte machen können. Solch ein schwacher Link kann der HTML-Code der Seite sein.

Website-Code kann mit verschiedenen Validatoren analysiert werden. Für die Selbsteinschätzung müssen Sie Dateien mit Stilen und Skripten deaktivieren. So sehen sie sie Suchroboter. Wenn die Website langsam lädt, falsch angezeigt wird und Suchmaschinen die Logik der Seiten nicht verstehen können, wird es definitiv Probleme damit geben. Der Ressourcencode muss verbessert werden.

Die Website-Code-Optimierung wird als rein technischer Prozess betrachtet, der auf der Reduzierung der Menge an Website-Code basiert. Dies ist vor allem für Ressourcen erforderlich, für die Suchmaschinen die Hauptverkehrsquelle sind. Die Hauptregel ist Einfachheit. Alle Stile und Skripte müssen verschoben werden externe Dateien. Der Code sollte so einfach und verständlich wie möglich sein.

Suchroboter müssen schnell die Struktur von Seiten auswerten. Daher ist es besser, keine Rahmen und Bündigkeit zu verwenden. Diese Elemente machen den Code schwerer und komplexer. Legen Sie alle Designelemente in Dateien im CSS-Stil ab und formatieren Sie sie in Sprites. Es ist die Einfachheit des Codes, die die Relevanz der Website und die Geschwindigkeit der Indexierung von Seiten bestimmt. Bei großen Ressourcen mit hohem Datenverkehr ist die Codeoptimierung ein obligatorisches Verfahren. Gleichzeitig müssen auch Seiten optimiert werden, deren Größe nicht mehr als 1 MB beträgt.

Die Hauptphasen der Website-Code-Optimierung

  • Das Hervorheben von h1-h6-Überschriften ist im Allgemeinen ein Suchroboter, vergessen Sie also nicht die korrekte Formatierung des Textes.
  • Reduzieren Sie die Codegröße – je weniger Code, desto einfacher und schneller lädt die Seite. In letzter Zeit ist die Seitenladegeschwindigkeit zu einem wichtigen Rankingfaktor geworden Google-SERP was offiziell angekündigt wurde.
  • Entfernung Schadcode- Viele Hostings haben einen Antivirus-Bereich, der Site-Dateien scannt und den Pfad zu ihrer Lösung anzeigt. Das Fehlen von bösartigem Code macht die Website von Suchmaschinen bevorzugter.
  • Interne Website-Optimierung- Erstellen eines einzigartigen Textes, der die erforderliche Keyword-Dichte unterstützt.
  • – verteilt das Seitengewicht gleichmäßig und erhöht den Traffic für Suchanfragen mit geringer Häufigkeit, insbesondere beim Hinzufügen neuer Inhalte.
  • Hinzufügen von Meta-Tags – Titel, Schlüsselwörter und Beschreibung werden von den Werken verwendet und auf den Suchergebnisseiten angezeigt. Richtig zusammengesetzte Meta-Tags erhöhen die Relevanz von Seiten und ziehen Nutzer an.
  • Bildoptimierung - Jedes Bild muss im optimalen Format (GIF, JPEG, PNG und PNG-24) sowie Alt und Titel ausgewählt werden.

Gültigkeit des Standortcodes

Gültigkeit ist die Konformität des Codes mit allgemein anerkannten Weltstandards W3C. Ein ungültiger Site-Code mit vielen Fehlern kann zu einem Hindernis bei der Bewerbung einer bestimmten Ressource werden. Wenn nicht alle gepaarten Tags geschlossen sind, kann es zu Problemen bei der Darstellung von Designelementen kommen. Aber in Wirklichkeit sind selbst die Seiten der größten Suchmaschinen nicht zu 100 % valide. Was ist der Grund für diese Diskrepanz?

  • Eine hohe Arbeitsintensität bei der Standardisierung der Website und die Notwendigkeit einer außergewöhnlichen Professionalität des Entwicklers bei der Validierung einer großen dynamischen Website.
  • 100 % gültiger HTML-Code garantiert keine browserübergreifende Kompatibilität und schützt auch nicht vor Fehlern bei der Verwendung älterer Browser.

Bei kleineren Ressourcen ist die Gültigkeit des HTML-Codes jedoch ein ausgezeichneter Bonus für das Ranking der wettbewerbsfähigsten Suchanfragen und zeigt auch die Seriosität der Ressource.

Optimierung von Cascading Stylesheets

Wie die HTML-Code-Optimierung ist die Style-Optimierung (CSS) ein ebenso wichtiges Unterfangen, das von vielen Webmastern übersehen wird. Die Optimierung des CSS-Codes beschleunigt auch das Laden der Seiten der Website und spart Verkehr. Da die CSS-Datei bis zu 100 KB groß ist, sehen viele Webmaster keine Notwendigkeit, sie zu optimieren, aber wenn Sie darüber nachdenken, wie viel Traffic durch die Optimierung einer Datei pro Jahr eingespart wird, stellen Sie fest, wie unterschätzt sie war.

Sie können CSS manuell oder mithilfe spezieller Dienste optimieren. Jede Option hat einen Nachteil. Bei der manuellen Optimierung des Seitencodes kann man viel aus den Augen verlieren und viel Zeit aufwenden. Die Maschinenoptimierung kann jedoch Linien entfernen, ohne die das Design möglicherweise nicht richtig angezeigt wird.

Kodierungseinstellung

Ein weiterer Faktor beeinflusst Website-Promotion, ist die Codierung. Russischer Text wird nur korrekt angezeigt, wenn richtige Einstellung Codierungen wie Windows-1251 oder utf-8. Wenn der Inhalt nicht richtig codiert ist, werden Zeichen und Symbole verzerrt, was zu Besucherverlusten und einer langsamen Indexierung führt.

Probleme mit Codierungen sind typisch für alte Ressourcen, bei denen Seiten in Tools wie Notepad erstellt und der Code in vielen verschiedenen Formaten gespeichert wurde. Manche moderne Browser nicht in der Lage, solche Codierungen zu erkennen.

Interne Website-Optimierung

In den meisten Fällen kann eine kompetente interne Ressourcenoptimierung die Seite ohne nennenswerten Aufwand auf die besten Positionen der Suchmaschinen bringen und mit Linktausch arbeiten. Jede Kleinigkeit, die seine Position beeinflusst, ist wichtig. Versuchen Sie, eine Struktur zu schaffen, die sowohl für Benutzer als auch für Benutzer verständlich ist Suchmaschinen. Mehrseitige Portale sollten organisierte Abschnitte enthalten, in denen alle Seiten nicht mehr als 3-4 Klicks entfernt sind. Es ist wünschenswert, die Breadcrumbs und für Menschen lesbare Webadressen zu verwenden. Leider verfügen nicht alle CMS-Skripte über diese Funktionalität.

Abschluss

Der technische Aspekt erfolgreicher Website-Promotion wird durch einen optimierten HTML-Code gelöst. Suchmaschinen Website-Seiten werden anders bewertet als Benutzer, daher kann ein sauberer, gültiger Code Ihre Ressource in den Suchergebnissen nach oben bringen, wo manchmal nur wenige Positionen entscheidend sind.

Ich hoffe, dass das Material für meine lieben Leser nützlich sein wird. Abonnieren Sie Blog-Updates. Ich wäre Ihnen dankbar, wenn Sie auf die Schaltflächen drücken und dieses Material erneut veröffentlichen würden. Wir sehen uns in den nächsten Artikeln. Allen viel Glück.

Auf dieser Seite teile ich normalerweise meine Erfahrungen, aber manchmal brauche ich selbst Rat. Und dieser kurze Artikel wird nur aus dieser Kalash-Serie stammen, da das Problem etwas höher ist als meine Kompetenz, aber es muss gelöst werden. Daher richtet sich die Frage gewissermaßen an die Leser. Aber Tatsache ist, dass unser liebes Google mir gesagt hat, dass meine Website nicht vollständig ist und dies die Website verlangsamt.

Ich bin kein Programmierer, wie man so sagt, ich spreche keine Sprachen. Aber das Problem muss gelöst werden, weshalb ich es hier angesprochen habe. Natürlich ist die Frage, obwohl sie komplex ist, nicht schwieriger als zu verstehen, was sie ist und wie sie hilft, den Handel zu verwalten.

So optimieren Sie den Website-Code?

Ich werde versuchen, es auf den Seiten meines Blogs herauszufinden. Außerdem wird es nicht möglich sein, alles auf einmal zu tun, aber Sie müssen einen Aktionsplan haben.

Ich möchte damit beginnen, zu erklären, wo der Hund begraben ist. Wahrscheinlich verwenden Sie, wie ich, eine Art Content-Management-System für Ihre Website: WordPress, Joomla, Drupal oder etwas anderes. Diese Systeme werden von Fachleuten hergestellt und enthalten nur wenige Fehler.

Aber hier sind die Vorlagen, die die meisten von uns aus dem freien Zugang nehmen, mit Fehlern sündigen. , insbesondere freie, werden oft von Amateuren hergestellt, und ihre Nachkommen sind nicht perfekt. Und es waren die Fehler im Template, auf die mich das gute Google hinwies. Was sind Sie?

Google zeigt beim Laden einer Website von Mobilgeräten und Desktops separate Fehler an. Es gibt jedoch einen Unterschied. Also, welche Fehler oder gar Unmengen von Code gibt es in meinem Template?

Für Computer:

1. Sollte beheben Das ist ein großer Fehler!

Browser-Cache verwenden!
Wenn Sie das Datum oder das Ablaufdatum statischer Ressourcen in HTTP-Headern angeben, lädt der Browser Ressourcen herunter, die bereits früher empfangen wurden lokale Festplatte und nicht aus dem Internet.
Verwenden Sie den Browser-Cache für die folgenden Ressourcen:

Http://avatars-fast.yandex.net/get-direct/nubNH6Z6vqKZZtboVlYcQg/y80 (kein Ablaufdatum) http://directstat.ru/script (kein Ablaufdatum) https://prostolinux.ru/karta-saita/ (Ablauf nicht angegeben) https://prostolinux.ru/prostolinux.png (Ablauf nicht angegeben) (Ablauf nicht angegeben) (Ablauf nicht angegeben) https://prostolinux.ru/wp-content/themes /rockwell_new/rockwell/css /jquery.lightbox-0.5.css (kein Ablaufdatum angegeben) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/orange.css (kein Ablaufdatum angegeben) https ://prostolinux.ru/wp -content/themes/rockwell_new/rockwell/css/superfish.css (kein Ablaufdatum) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_body.jpg (kein Ablaufdatum) https:/ /prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_dotted_vert.gif (kein Ablaufdatum) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_menu_orange.jpg (Nr Verfallsdatum wiya) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bullet_top.jpg (kein Ablaufdatum angegeben) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images /ico_date_orange.png (kein Ablaufdatum) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/topmenu_border_orange.jpg (kein Ablaufdatum) https://prostolinux.ru/wp-content /themes /rockwell_new/rockwell/js/copy.js (Ablauf nicht angegeben) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js (nicht angegeben) Ablaufdatum ) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js (Ablauf nicht angegeben) (Ablauf nicht angegeben) (Ablauf nicht angegeben) https://prostolinux.ru/wp -content/themes/rockwell_new/rockwell/style.css (Ablauf nicht angegeben) https://prostolinux.ru/wp-includes/images/smilies/icon_smile.gif (Ablauf nicht angegeben)

Hier verstehe ich immer noch überhaupt nicht, was die Gültigkeitsdauer ist und wo sie angegeben werden sollte. Du weisst?

2. Erwägen Sie das Reparieren

Entfernen Sie JavaScript und CSS, die das Rendering blockieren, oben auf der Seite.

Anzahl blockierender Skripte pro Seite: 1. Anzahl blockierender CSS-Ressourcen pro Seite: 4. Sie verlangsamen die Anzeige von Inhalten.
Alle Inhalte oben auf der Seite werden erst angezeigt, nachdem die folgenden Ressourcen heruntergeladen wurden. Versuchen Sie, das Laden dieser Ressourcen zu verzögern, laden Sie sie asynchron oder integrieren Sie sie selbst wichtige Komponenten direkt in den HTML-Code.
Entfernen Sie das JavaScript, das die Anzeige blockiert:

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

Optimieren CSS-Arbeit auf folgenden Ressourcen:

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

Hier ist das Problem klarer, aber ich weiß noch nicht, wie ich es lösen soll. hochgeladen auf lokaler Server eine Kopie der Website, um den Code sicher zu bearbeiten. Wir werden trainieren.

3. JavaScript minimieren ist die durchschnittliche Fehlerquote. Durch das Beheben des Fehlers wird die Website etwas beschleunigt.
Mit der JavaScript-Codekomprimierung können Sie die Datenmenge reduzieren, um das Laden, Verarbeiten und Ausführen zu beschleunigen.
Minimieren Sie den JavaScript-Code auf den folgenden Ressourcen, um ihre Größe um 19,4 KB zu reduzieren (46 %
Das Kürzen von https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js reduziert die Größe um 14 KB (41 %
Das Kürzen von https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js reduziert die Größe um 5,4 KB (64 %
4. Bilder optimieren – das ist die durchschnittliche Fehlerquote. Durch das Beheben des Fehlers wird die Website etwas beschleunigt.

Das richtige Format und die Komprimierung von Bildern können ihre Größe reduzieren.

Optimieren Sie die folgenden Bilder, um ihre Größe um 5 KB zu reduzieren (14 %
Wenn Sie ein Bild verlustfrei komprimieren, wird seine Größe um 2 KB (8 %
Wenn Sie das Bild https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/ico_date_orange.png verlustfrei komprimieren, reduziert dies seine Größe um 1,7 KB (31%
Wenn Sie das Bild http://avatars-fast.yandex.net/get-direct/nubNH6Z6vqKZZtboVlYcQg/y80 verlustfrei komprimieren, reduziert dies seine Größe um 1,3 KB (19 %

5. Reduzieren Sie die Antwortzeit des Servers – dies ist eine durchschnittliche Fehlerrate. Durch das Beheben des Fehlers wird die Website etwas beschleunigt.

Laut den Testergebnissen betrug die Antwortzeit Ihres Servers 0,24 Sekunden. Dieser Indikator wird von vielen Faktoren beeinflusst. Lesen Sie unsere Best Practices und erfahren Sie, wie Sie die Antwortzeit nachverfolgen und messen können.

Ich dachte nicht, dass es viel ist, aber es scheint eine Frage des Hostings zu sein, Sie müssen es dort herausfinden.
6. Minimieren Sie HTML ist die durchschnittliche Fehlerquote. Durch das Beheben des Fehlers wird die Website etwas beschleunigt.
Das Komprimieren von HTML-Code (einschließlich Inline-JavaScript- oder CSS-Code) reduziert die Datenmenge, um das Laden und Verarbeiten zu beschleunigen.

Minimieren Sie den HTML-Code auf den folgenden Ressourcen, um ihre Größe um 1,7 KB (8 %
Das Reduzieren von https://prostolinux.ru/kak-usilit-signal-3g-modema/ reduziert die Größe um 1,7 KB (8 %

Für Handy:

Hier sind alle Fehler gleich, aber mit dem Unterschied, dass ALLE WERDEN ALS KRITISCH MARKIERT!

Was bedeutet das? Dies bedeutet, dass beim Laden einer Website von Mobilgerät, sollte alles viel schneller gehen, da der Internetkanal meist schon da ist.

Ja, ich habe nicht gesagt, wo Google mir diese Fehler angezeigt hat. Und er zeigte sie mir im Google Adsense-Panel. Oder Sie können einfach zu https://developers.google.com/speed/pagespeed/insights/ gehen und herausfinden, was behoben werden muss, da es nicht einfach ist, den Code auf der Website zu optimieren, sondern Sie müssen es nur tun es einmal.

Wenn Sie wissen, wie Sie zumindest einige der Probleme lösen können, bin ich für Ihre Tipps sehr dankbar. In der Zwischenzeit durchforste ich das Internet nach Antworten auf diese wichtigen Fragen ....

Lösungen.

1. Schalten Sie die Komprimierung ein.

Das erste, was es ermöglichte, sofort einige Verbesserungen zu erzielen, war das Hinzufügen von Code zur Datei. htaccess, die sich im Stammverzeichnis der Website befindet.

SetOutputFilter DEFLATE Header anhängen Vary User-Agent FileETag MTime-Größe ExpiresActive on ExpiresDefault "Zugriff plus 1 Monat" SetOutputFilter DEFLATE

So wie ich es verstehe, können Sie damit Daten auf der Serverseite komprimieren. Ich habe darüber schon früher geschrieben, sogar den Code veröffentlicht, aber ein paar weitere Einstellungen können hinzugefügt werden, was die Leistung verbessert.
2. Entfernen Sie unnötige Skripte.

Die Seitenanalyse zeigte, dass einige Vorlagenskripte das Laden der Seite störten. Mehrere Skripte der folgenden Form wurden aus header.php entfernt:

Nach der Entfernung funktionierte und funktionierte die Site, für die sie benötigt und nicht verstanden wurden. Der Google-Test zeigte eine nach der anderen, ich löschte und überprüfte. Nachdem einer entfernt wurde, erschien der nächste. Also habe ich 4-5 Stück entfernt und alles ist in Ordnung.

Und die Effizienz verbessern. Zu den Optimierungszielen gehören die Reduzierung der Codemenge, der vom Programm verwendeten RAM-Menge, die Beschleunigung des Programms und die Reduzierung der Anzahl der E/A-Operationen.

Die Hauptanforderung, die normalerweise an das Optimierungsverfahren gestellt wird, besteht darin, dass das optimierte Programm das gleiche Ergebnis und die gleichen Nebenwirkungen auf den gleichen Satz von Eingabedaten haben muss wie das nicht optimierte Programm. Diese Anforderung spielt jedoch möglicherweise keine besondere Rolle, wenn der Gewinn aus der Verwendung der Optimierung als wichtiger angesehen werden kann als die Folgen einer Änderung des Verhaltens des Programms.

Arten der Optimierung

Die Codeoptimierung kann sowohl manuell, durch einen Programmierer als auch automatisch durchgeführt werden. Im letzteren Fall kann der Optimierer entweder ein separates Softwaretool sein oder in den Compiler eingebaut sein (der sogenannte Optimierungscompiler). Darüber hinaus sollte beachtet werden, dass moderne Prozessoren die Reihenfolge optimieren können, in der Codeanweisungen ausgeführt werden.

Es gibt Konzepte wie High-Level- und Low-Level-Optimierung. Optimierungen auf hoher Ebene werden meistens von einem Programmierer durchgeführt, der, indem er mit abstrakten Einheiten (Funktionen, Prozeduren, Klassen usw.) arbeitet und sich ein allgemeines Modell zur Lösung eines Problems vorstellt, das Design des Systems optimieren kann. Optimierungen auf der Ebene elementarer Strukturblöcke des Quellcodes (Schleifen, Verzweigungen etc.) werden üblicherweise auch als High Level bezeichnet; manche heben sie als separate („mittlere“) Ebene hervor (N. Wirth?). Die Low-Level-Optimierung wird in der Phase durchgeführt, in der der Quellcode in eine Reihe von Maschinenanweisungen umgewandelt wird, und häufig unterliegt diese Phase der Automatisierung. Assembler-Programmierer glauben jedoch, dass keine Maschine einen guten Programmierer in dieser Hinsicht übertreffen kann (wobei sich alle einig sind, dass ein schlechter Programmierer Maschinen noch schlechter macht).

Auswahl des zu optimierenden Bereichs

Beim manuellen Optimieren von Code gibt es ein weiteres Problem: Sie müssen nicht nur wissen, wie man optimiert, sondern auch, wo man ihn anwendet. Normalerweise nehmen aufgrund verschiedener Faktoren (langsame Eingabeoperationen, unterschiedliche Geschwindigkeit von Mensch und Maschine usw.) nur 10 % des Codes bis zu 90 % der Ausführungszeit in Anspruch (natürlich ist die Aussage eher spekulativ, und hat eine zweifelhafte Grundlage in Form eines Gesetzes-Pareto, sieht jedoch recht überzeugend aus bei E. Tanenbaum). Da zusätzliche Zeit für die Optimierung aufgewendet werden muss, wäre es daher besser, anstatt zu versuchen, das gesamte Programm zu optimieren, diese „kritischen“ 10 % der Ausführungszeit zu optimieren. Ein solches Stück Code wird als Engpass oder Engpass bezeichnet, und um es zu bestimmen, werden spezielle Programme verwendet - Profiler, mit denen Sie die Zeit verschiedener Teile des Programms messen können.

Tatsächlich wird die Optimierung in der Praxis oft nach der "chaotischen" Programmierphase durchgeführt (mit Dingen wie "", "das finden wir später heraus", "das machen wir sowieso"), also ist es eine Mischung aus richtig Optimierung, Refactoring und Fixing: Vereinfachung "fancy" Konstrukte wie strlen(path.c_str()), boolesche Bedingungen (a.x != 0 && a.x != 0), etc. Profiler sind für solche Optimierungen kaum geeignet. Um solche Stellen zu erkennen, können Sie jedoch Programme verwenden - Tools zum Auffinden semantischer Fehler, die auf einer gründlichen Analyse des Quellcodes basieren - schließlich kann, wie Sie am zweiten Beispiel sehen, ineffizienter Code das Ergebnis von Fehlern sein (wie z Tippfehler in diesem Beispiel - höchstwahrscheinlich a.x != 0 && a.y != 0). Ein guter erkennt einen solchen Code und zeigt eine Warnmeldung an.

Schaden und Nutzen von Optimierungen

Fast alles in der Programmierung sollte rational behandelt werden, und Optimierungen sind keine Ausnahme. Es wird angenommen, dass ein unerfahrener Assembler-Programmierer normalerweise Code schreibt, der 3-5 Mal langsamer ist als vom Compiler generierter Code (Zubkov). Es gibt einen bekannten Ausdruck über frühe Optimierungen auf niedriger Ebene (wie der Kampf um einen zusätzlichen Operator oder eine Variable), der von Knuth formuliert wurde: "Vorzeitige Optimierung ist die Wurzel aller Probleme."

Die meisten Leute haben keine Beschwerden über die vom Optimierer durchgeführten Optimierungen, und manchmal sind einige Optimierungen praktisch Standard und obligatorisch - zum Beispiel die Tail-Rekursionsoptimierung in funktionalen Sprachen (Tail-Rekursion ist eine bestimmte Art von Rekursion, die auf die reduziert werden kann Form eines Zyklus).

Es sollte jedoch verstanden werden, dass zahlreiche komplexe Optimierungen auf Maschinencodeebene den Kompilierungsprozess stark verlangsamen können. Darüber hinaus kann der Gewinn aus ihnen im Vergleich zu Optimierungen des Gesamtdesigns des Systems (Wirth) äußerst gering sein. Außerdem sollte man nicht vergessen, dass moderne, syntaktisch und semantisch „ausgefallene“ Sprachen viele Feinheiten haben und ein Programmierer, der sie nicht berücksichtigt, von den Folgen der Optimierung überrascht sein kann.

Betrachten Sie zum Beispiel die Sprache C++ und die sog. Rückgabewertoptimierung, deren Kern darin besteht, dass der Compiler keine Kopien des temporären Objekts erstellen darf, das von der Funktion zurückgegeben wird. Da der Compiler in diesem Fall das Kopieren „überspringt“, wird dieser Trick auch „Copy Elision“ genannt. Also folgender Code:

#enthalten struct C ( C() () C(const C&) ( std::cout<< "A copy was made.\n"; } }; C f() { return C(); } int main() { std::cout << "Hello World!\n"; C obj = f(); }

kann mehrere Ausgabeoptionen haben:

Hallo Welt! Es wurde eine Kopie angefertigt. Es wurde eine Kopie angefertigt. Hallo Welt! Es wurde eine Kopie angefertigt. Hallo Welt!

Ironischerweise sind alle drei Optionen zulässig, da der Sprachstandard es erlaubt, in diesem Fall auf einen Kopierkonstruktoraufruf zu verzichten, selbst wenn der Konstruktor Nebenwirkungen hat (§12.8 Kopieren von Klassenobjekten, Klausel 15).

Ergebnis

Vergessen Sie daher nicht, den Code zu optimieren, wenn möglich mit speziellen Softwaretools, aber dies sollte sorgfältig und mit Vorsicht erfolgen und sich manchmal auf Überraschungen des Compilers einstellen.

PVS-Studio

Bibliographisches Verzeichnis

  • E. Tanenbaum. Rechnerarchitektur.
  • Wirth N. Erstellen von Compilern.
  • Knut D. Die Kunst des Programmierens, Band 1. Grundlegende Algorithmen.
  • Zubkov S.V. Assembler für DOS, Windows und UNIX.
  • Wikipedia. Code-Optimierung.
  • Wikipedia.

Die Optimierung von HTML-Code und Cascading Style Sheets (CSS) ist notwendig, um den Ladevorgang der Website und der darauf gehosteten Inhalte zu beschleunigen. Die Einsparungen an Zeit und Verkehr werden sich im Allgemeinen nach einer langen Zeit nach der Optimierung als erheblich herausstellen, auch wenn die Geschwindigkeitsänderung äußerlich nicht sehr wahrnehmbar ist.

HTML-Code-Optimierung

Damit der HTML-Code zum schnellen Laden der Seite beitragen kann, muss er mehrere Bedingungen erfüllen:

  • Seien Sie einfach und informativ. Nachdem Sie es auf Gültigkeit überprüft haben, müssen Sie die Fehler beheben, damit Bots es einfacher analysieren können. Der Code sollte die Struktur der Seite klar darstellen.
  • Die Hauptbestandteile von Seiten, wie Überschriften, Indexe, Informationsblöcke, sollten einfach und schnell identifiziert werden können.
  • Das Befreien des Codes von unnötigen Informationen und das Ablegen in separate Dateien (z. B. können Sie CSS und JS einfügen) erhöht die Download-Geschwindigkeit, was auch die Arbeit von Bots vereinfacht.

Wenn diese Bedingungen erfüllt sind, kann die Website schneller und bequemer gemacht und die Effizienz ihrer Indexierung durch Suchmaschinen-Bots gesteigert werden.

Codereduktion und CSS-Optimierung

Sie können den Site-Code vereinfachen, indem Sie sein Volumen reduzieren. Dazu müssen Sie mehrere Operationen ausführen.

Zuallererst sollten Sie Flash-Technologien, JavaScript, Frames und Text, der durch ein Bild dargestellt wird, vermeiden. Alle Elemente sollten nach Möglichkeit in separaten externen Dateien gerendert werden (z. B. CSS und JS, wie oben erwähnt). Spezielle Plugins helfen, den Code zu optimieren. Sie können beispielsweise das Autoptimize-Plugin installieren, das automatisch HTML-, CSS- und JS-Code optimiert (wenn Sie die entsprechenden Kontrollkästchen aktivieren). Es ist notwendig, eine kompetente und bequeme Seitennavigation einzurichten, die für Benutzer verständlich ist und von Suchmaschinen korrekt erkannt wird. Dies erhöht die Geschwindigkeit, Ladequalität und Indizierung der Website.

Die CSS-Optimierung können Sie selbst vornehmen oder einer speziellen Ressource oder einem Programm anvertrauen. Die manuelle Optimierung ist ein zeitaufwändiger und zeitraubender Prozess, außerdem können Sie einige Fehler übersehen. Ein Programm oder Dienst zur Optimierung beseitigt Mängel besser, kann jedoch einige der auf der Website funktionierenden Funktionen stören und nach Überprüfung des Inhalts möglicherweise nicht korrekt angezeigt werden, sodass seine Arbeit korrigiert werden muss.

Einige Möglichkeiten, die CSS-Struktur manuell zu verbessern:

  • Entfernen Sie zusätzliche Leerzeichen und Zeilenumbrüche, die die CSS-Datei überladen und Robotern die Arbeit erschweren;
  • Schreiben Sie verallgemeinernde Eigenschaften, anstatt ähnliche Befehle mehrmals zu wiederholen;
  • Verwenden Sie prägnante, verständliche Beschreibungen in Kommentaren;
  • Schreiben Sie ungewöhnliche Schriftarten mit Stilen, nicht mit Bildern;
  • Erstellen Sie für Bilder Alt und Titel (für jedes Bild anders), damit deren Inhalt von Suchmaschinen-Bots erkannt wird;
  • Wenden Sie H1-Tools auf Überschriften an - und so weiter, damit sie beim Indexieren korrekt erkannt werden;
  • Verschreiben Sie in Schlüsselwörtern nur die Schlüsselwörter, die auf der Seite verwendet werden, minimieren Sie ihre Anzahl;
  • Verwenden Sie abwechslungsreiche und prägnante Meta-Tags.

CSS- und HTML-Optimierer

Mit speziellen Diensten optimieren Sie bequem und schnell direkt im Browser, zum Beispiel:

  • CleanCSS.com;
  • CSS-Optimierer;
  • CSS-Kompressor
  • CYPR.com;
  • Plugin automatisch optimieren.

Experten für SEO und IT raten zur Verwendung von CleanCSS.com, da Sie die Komprimierungsstufe von niedrig bis hoch wählen oder individuelle Einstellungen vornehmen können. Nach hohen und höchsten Optimierungsstufen wird der Site-Code fast unlesbar und es ist fast unmöglich, Änderungen daran vorzunehmen. Daher sollten Sie zunächst die Standardoptimierung verwenden. Sie können Komprimierungsmodi für bestimmte Inhalte auswählen oder einzelne Parameter optimieren: Komprimierung von Schriftarten, Bildern, Entfernen von Leerzeichen.

CY-PR.com hat auch ein ähnliches Optimierungstool, das die CSS-Struktur um 25-30 % aufhellt, aber es gibt keine Möglichkeit, nach der Operation eine Codedatei zu generieren.

Der Rest der Dienste kann den Code radikal ändern, sodass einige Funktionen auf der Website nicht mehr funktionieren. Daher ist es mit ihrer Hilfe besser, nur lokale Änderungen an bestimmten Standortparametern vorzunehmen.

Nach der Optimierung sollten Sie die Performance der Seite, die korrekte Darstellung des Designs und die Downloadgeschwindigkeit überprüfen. Normal ist die Situation, wenn die Seiten und Benutzeroptionen der Site nicht länger als 3-5 Sekunden geladen werden.

Um den Optimierungsgrad zu überprüfen und nachzuvollziehen, wie effizient der HTML-Code mittlerweile geschrieben ist, können Sie Dienste nutzen wie:

  • Optimierung.com;
  • Portal SEO-Checkliste;
  • Firebug-Plugin.

Diese Tools helfen Ihnen zu überprüfen, ob alles getan wurde, um die Menge an HTML-Code zu reduzieren und seine Struktur zu verbessern. Auf der SEO-Checkliste-Ressource können Sie die Liste dessen überprüfen, was bereits zur Optimierung getan wurde und was noch nicht getan wurde, und abgeschlossene Taten markieren.

Validierung

Sie können den Standortcode mithilfe von Validierungsprüfungsdiensten (Validatoren) auf Fehler überprüfen. Eine effiziente Code-Validierung erfolgt mit validator.w3c.org

Wenn das System bei der ersten Prüfung mehr als ein halbes Tausend Fehler generiert, sollten Sie sich nicht aufregen. Nachdem Sie einen bestimmten Fehler behoben haben, können Sie die Prüfung erneut durchführen und es werden viel weniger Fehler auftreten, da ein Fehler andere nach sich zieht und wenn er behoben ist, verschwinden sie.

Eine Website mit korrigiertem und optimiertem Code wird in den Suchergebnissen eher einen hohen Rang einnehmen als eine Ressource mit überladenem HTML-Code, der Fehler enthält.

Code-Optimierung wird eine Änderung des richtigen Codes genannt, die darauf abzielt, seine Effizienz zu steigern. „Optimieren“ bedeutet, kleine Änderungen vorzunehmen, die eine Klasse, eine Methode und meistens mehrere Codezeilen betreffen. Umfangreiche Designänderungen oder andere Leistungsverbesserungen auf hoher Ebene gelten nicht als Optimierungen. Dies ist nicht der effizienteste Weg, um die Leistung zu verbessern. Die Verbesserung der Architektur des Programms, die Neugestaltung der Klassen und die Auswahl eines effizienteren Algorithmus führen zu beeindruckenderen Ergebnissen. Darüber hinaus ist die Codeoptimierung nicht der einfachste Weg, um die Leistung zu verbessern: Es ist einfacher, neue Hardware oder einen Compiler mit einem verbesserten Optimierungsmodul zu kaufen. Schließlich ist es nicht der billigste Weg, um die Leistung zu verbessern: Es kostet viel Zeit, den Code anfänglich manuell zu optimieren, und dann ist der optimierte Code schwieriger zu warten.

Optimierung durch den Programmierer.

1). Erweitern Sie die Datenstruktur um zusätzliche Informationen oder ändern Sie die Darstellung der Daten in dieser Struktur. 2). Berechnen Sie Ergebnisse im Voraus und speichern Sie sie für eine spätere Verwendung. 3) . Anwendung der Datenpaketierung. 4) . Die innere Schleife sollte möglichst wenige Checks enthalten, am besten nur einen. 5) . Unbedingte Sprünge entfernen. 6) . Boolesche Prüfungen sollten so angeordnet werden, dass schnellere Bedingungen, die mit größerer Wahrscheinlichkeit richtig sind, vor langsameren Bedingungen kommen, die mit geringerer Wahrscheinlichkeit richtig sind. 7). Eine logische Funktion auf einer kleinen Menge von Anfangswerten kann durch eine Tabelle ersetzt werden, die diese Menge darstellt. 8). Doppelte Ausdrücke entfernen. 9). Wenn zwei oder mehr identische Ausdrücke häufig hintereinander ausgewertet werden, sollten sie in ein Unterprogramm verschoben werden. 10) . Ändern von Datentypen kann eine effektive Möglichkeit sein, Code zu reduzieren und seine Leistung zu verbessern. 11) . Umschreiben von Code in einer Low-Level-Sprache. Bei geringer Performance sollte der Code in einer Low-Level-Sprache umgeschrieben werden. Wenn Sie in C++ schreiben, könnte die Low-Level-Sprache Assembler sein. Das Umschreiben von Code in einer Low-Level-Sprache wirkt sich normalerweise positiv auf die Codeleistung aus.

Compiler-Optimierung.

Codeoptimierungsmethoden können auf verschiedenen Ebenen syntaktischer Konstruktionen angewendet werden: 1 ). auf der Operatorebene - die meisten Compiler optimieren auf dieser Ebene. 2 ). auf der Blockebene – der optimierende Compiler weist dem Programm eine Betriebsstruktur zu, indem er einen gerichteten Flussgraphen des Programms konstruiert, in dem jeder Scheitelpunkt den Hauptblock darstellt und die Verbindungen zwischen den Scheitelpunkten Steuerflüsse darstellen. Die meisten Compiler führen Optimierungen auf Blockebene durch. 3 ). auf Zyklusebene. 4 ). auf Programmebene - die schwierigste Ebene der Optimierung.

Je höher der Optimierungsgrad, desto mehr Möglichkeiten, die Geschwindigkeit des Programmmoduls zu erhöhen. Die Kosten für die Anwendung eines höheren Optimierungsgrades können jedoch die Kompilierungszeit erheblich verlängern.

42. Gestaltung von Programmen: Hauptpunkte.

1) Beschreibung der Implementierung (Sprache, Programmierumgebung, Test, vorgesehene Ausführung):

Größen in Bytes, Operationen, Zeilen;

die Größe des erforderlichen Speichers für die Daten;

Erforderliche technische Ressourcen.

2) Zugriff auf das Unterprogramm (Anzahl, Typ und Reihenfolge der Übergabe der Eingabeparameter): Übergabemethode (per Referenz oder per Wert).

3) Beschreibung der zurückgegebenen Parameter:

ein Parameter, der von der Funktion selbst zurückgegeben wird;

Beschreibung der Eingabeparameter, die die Funktion ändert.

4) Beschreibung von Ausnahmesituationen und Programmreaktion darauf.

5) Beschreibung von Programmnachrichten, falls vorhanden.

6) Kurze Beschreibung des Algorithmus:

Wenn es einen Namen hat, dann gib ihn an;

Nennen Sie die Quelle oder wo der Text des Programms angegeben ist, wo der Algorithmus entnommen wurde;

Sie können ein Blockdiagramm bereitstellen.

8) Beschreiben Sie alle Eingabe- und Ausgabedateien und eine kurze Zusammenfassung ihres Inhalts.

9) Listen Sie die Datensatzstrukturen aller Dateien auf:

Aufschlüsselung nach Datensatzfeldern;



Wird geladen...
Spitze