Optimizacija programskog koda. Glavne karakteristike optimizacije koda od strane programera i kompajlera

Pozdravljam vas, dragi prijatelji, na sajtu bloga. Većina korisnika sajtove doživljava samo spolja, procjenjujući dizajn i strukturu, ali iza atraktivnih vanjskih komponenti kriju se mnogi interni zakoni i pravila koja su definirana W3C standardima. Interne komponente uključuju html kod i CSS stilove (bez posebne funkcionalnosti). Često su webmasteri više zabrinuti za izgled stranice. Međutim, interni sadržaj stranica u obliku html koda također zahtijeva pažnju, posebno kada je u pitanju privlačenje prometa pretraživanja.

Dobra interna optimizacija web stranice je neophodna za uspješnu online promociju. Naravno, optimizacija za pretraživače prije promocije je važna tačka. Promocija web stranice sa linkovima bez optimizacije neće biti efikasna, a može čak i naškoditi smanjenjem posjećenosti. Istovremeno, potrebno je identifikovati sve postojeće probleme i nedostatke, koji u bilo kojoj fazi mogu poništiti sva dostignuća. Tako slab link može biti html-kod stranice.

Kôd web stranice može se analizirati korištenjem različitih validatora. Za samoprocjenu morate onemogućiti datoteke sa stilovima i skriptama. Tako ih oni vide roboti za pretragu. Ako se stranica sporo učitava, prikazuje se pogrešno, a tražilice ne mogu razumjeti logiku stranica, sigurno će biti problema s tim. Kod resursa je potrebno poboljšati.

Optimizacija koda web stranice smatra se čisto tehničkim procesom koji se temelji na smanjenju količine koda web stranice. Neophodan je, prije svega, za resurse za koje su pretraživači glavni izvor prometa. Glavno pravilo je jednostavnost. Svi stilovi i skripte moraju biti premješteni eksterne datoteke. Kod treba da bude što lakši i razumljiviji.

Roboti za pretraživanje moraju brzo procijeniti strukturu stranica. Stoga je bolje ne koristiti okvire i ispiranje. Ovi elementi otežavaju kod, čineći ga složenijim. Stavite sve elemente dizajna u datoteke u css stilu, formatirajući ih u sprite. Jednostavnost koda određuje nivo relevantnosti stranice i brzinu indeksiranja stranica. Za velike resurse sa velikim prometom, optimizacija koda je obavezna procedura. Istovremeno, potrebno je optimizirati parne stranice čija veličina nije veća od 1 MB.

Glavne faze optimizacije koda web stranice

  • Isticanje naslova h1-h6 općenito su roboti za pretraživanje, stoga ne zaboravite na ispravno oblikovanje teksta.
  • Smanjite veličinu koda - što je manje koda, to se stranica lakše i brže učitava. Nedavno je brzina učitavanja stranica postala važan faktor rangiranja Google SERP koja je i zvanično objavljena.
  • Odstranjivanje zlonamjernog koda- mnogi hostingi imaju antivirusni odjeljak koji skenira datoteke web mjesta i ukazuje na put do njihovog rješenja. Odsustvo zlonamjernog koda čini web lokaciju preferiranijom od strane pretraživača.
  • Interna optimizacija web stranica- kreiranje jedinstvenog teksta koji podržava potrebnu gustoću ključnih riječi.
  • – ravnomjerno raspoređuje težinu stranice i povećava promet za niskofrekventne upite, posebno pri dodavanju novog sadržaja.
  • Dodavanje meta tagova - naslov, ključne reči i opis koriste se radovima i prikazuju se na stranicama rezultata pretrage. Pravilno sastavljeni meta tagovi povećavaju relevantnost stranica i privlače korisnike.
  • Optimizacija slike - svaka slika mora biti odabrana u optimalnom formatu (GIF, JPEG, PNG i PNG-24), kao i alt i naslov.

Valjanost koda stranice

Valjanost je usklađenost koda sa općeprihvaćenim svjetskim standardima W3C. Neispravan kod stranice koji sadrži mnogo grešaka može postati prepreka u promociji određenog resursa. Ako nisu sve uparene oznake zatvorene, može doći do problema s prikazom elemenata dizajna. Ali u stvarnosti, čak ni sajtovi najvećih pretraživača nisu 100% validni. Šta je razlog za ovo neslaganje?

  • Visok stepen radne snage u standardizaciji sajta i potreba za izuzetnim profesionalizmom programera prilikom validacije velikog dinamičkog sajta.
  • 100% važeći html kod ne garantuje kompatibilnost među pretraživačima, a takođe ne osigurava greške pri korištenju starijih pretraživača.

Međutim, za manje resurse, valjanost html koda je odličan bonus za rangiranje najkonkurentnijih upita, a ujedno će pokazati i ozbiljnost resursa.

Optimiziranje kaskadnih stilskih tablica

Poput optimizacije html koda, optimizacija stila (css) je jednako važan poduhvat koji mnogi webmasteri zanemaruju. Optimizacija css koda također ubrzava učitavanje stranica web stranice i štedi promet. Pošto je css fajl do 100Kb, mnogi webmasteri ne vide potrebu da ga optimizuju, ali ako razmislite o tome koliko se saobraćaja uštedi optimizacijom fajla godišnje, shvatićete koliko je to bilo potcenjeno.

CSS možete optimizirati ručno ili uz pomoć posebnih servisa. Svaka opcija ima nedostatak. Prilikom ručnog optimiziranja koda stranice možete izgubiti iz vida mnogo toga, a pritom ćete potrošiti mnogo vremena. Međutim, optimizacija mašine može ukloniti linije bez kojih se dizajn možda neće ispravno prikazati.

Postavka kodiranja

Još jedan faktor koji utiče promocija web stranice, je kodiranje. Ruski tekst će biti ispravno prikazan samo ako ispravno podešavanje kodiranja, kao što su Windows-1251 ili utf-8. Ako sadržaj nije ispravno kodiran, znaci i simboli će biti izobličeni, što će dovesti do gubitka posjetitelja i sporog indeksiranja.

Problemi sa kodiranjem tipični su za stare resurse, gdje su stranice kreirane u alatima kao što je Notepad, a kod je sačuvan u mnogo različitih formata. Neki moderni pretraživači ne mogu prepoznati takva kodiranja.

Interna optimizacija web stranica

U većini slučajeva, kompetentna interna optimizacija resursa može dovesti stranicu na najbolje pozicije pretraživača bez značajnih napora i rada sa razmjenom linkova. Svaka sitnica koja utiče na njegovu poziciju je važna. Pokušajte stvoriti strukturu koja je razumljiva i korisnicima i tražilice. Portali sa više stranica treba da sadrže organizovane sekcije, u kojima sve stranice nisu udaljene više od 3-4 klika. Poželjno je koristiti breadcrumbs i čovjeku čitljive web adrese. Nažalost, nemaju sve CMS skripte ovu funkciju.

Zaključak

Tehnički aspekt uspješne promocije web stranice riješen je optimiziranim html kodom. tražilice stranice web stranice se procjenjuju drugačije od korisnika, tako da čist, važeći kod može pomaknuti vaš resurs u rezultate pretraživanja, gdje je samo nekoliko pozicija ponekad odlučujuće.

Nadam se da će materijal biti koristan mojim dragim čitateljima. Pretplatite se na ažuriranja bloga. Bio bih zahvalan što pritisnete dugmad i ponovo objavite ovaj materijal. Vidimo se u narednim člancima. Sretno svima.

Na ovoj stranici obično dijelim svoja iskustva, ali ponekad i meni treba savjet. I ovaj kratki članak će biti samo iz ove serije Kalaša, pošto je problem malo veći od moje nadležnosti, ali ga treba riješiti. Dakle, pitanje je donekle i za čitaoce. Ali činjenica je da mi je naš dragi Gugl rekao da ova moja stranica nije kompletna i to usporava stranicu.

Nisam programer, kako kažu, ne govorim jezike. Ali problem se mora riješiti, zato sam ga ovdje iznio. Naravno, pitanje, iako složeno, nije ništa teže od razumijevanja šta je to i kako pomaže u upravljanju trgovinom.

Kako optimizirati kod web stranice?

Pokušat ću to shvatiti na stranicama mog bloga. Osim toga, neće biti moguće učiniti sve odjednom, ali morate imati akcioni plan.

Želim da počnem tako što ću objasniti gdje je pas zakopan. Vjerovatno i vi, kao i ja, koristite neku vrstu sistema za upravljanje sadržajem za svoju stranicu: WordPress, Joomla, Drupal ili nešto drugo. Ove sisteme rade profesionalci i u njima ima malo grešaka.

Ali evo šablona koje većina nas uzima iz slobodnog pristupa, griješi s greškama. , posebno slobodne, često prave amateri, a njihovi potomci nisu savršeni. I upravo mi je dobar Google ukazao na greške u šablonu. Šta su oni?

Google prikazuje odvojene greške prilikom učitavanja stranice s mobilnih uređaja i desktopa. Međutim, postoji razlika. Dakle, koje greške ili čak gomile koda postoje u mom predlošku?

Za kompjutere:

1. Treba li popraviti Ovo je velika greška!

Koristite keš pretraživača!
Ako navedete datum ili datum isteka statičkih resursa u HTTP zaglavljima, pretraživač će preuzeti resurse koji su već ranije primljeni od lokalni disk a ne sa interneta.
Koristite keš pretraživača za sljedeće resurse:

Http://avatars-fast.yandex.net/get-direct/nubNH6Z6vqKZZtboVlYcQg/y80 (bez datuma isteka) http://directstat.ru/script (bez datuma isteka) https://prostolinux.ru/karta-saita/ (istok nije određen) https://prostolinux.ru/prostolinux.png (istjek nije određen) (istjek nije određen) (istjek nije određen) https://prostolinux.ru/wp-content/themes /rockwell_new/rockwell/css /jquery.lightbox-0.5.css (istok nije određen) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/css/orange.css (istok nije određen) https://prostolinux.ru/wp -content/themes/rockwell_new/rockwell/css/superfish.css (bez datuma isteka) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_body.jpg (bez datuma isteka) https:/ /prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bk_dotted_vert.gif (bez datuma isteka) https://prostolinux.ru/wp-content/themes/ rockwell_new/rockwell/images/bk_menu_orange.jpg (ne datum isteka wiya) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/bullet_top.jpg (nije naveden datum isteka) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images /ico_date_orange.png (bez datuma isteka) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/topmenu_border_orange.jpg (bez datuma isteka) https://prostolinux.ru/wp-content /themes /rockwell_new/rockwell/js/copy.js (istok nije određen) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js (nije naveden) datum isteka ) https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js (istok nije naveden) (istok nije određen) (istok nije određen) https:// prostolinux.ru/wp -content/themes/rockwell_new/rockwell/style.css (istok nije određen) https://prostolinux.ru/wp-includes/images/smilies/icon_smile.gif (istok nije određen)

Ovdje još uvijek uopće ne razumijem koji je rok važenja i gdje ga treba naznačiti. Ti znaš?

2. Razmislite o popravljanju

Uklonite JavaScript i CSS koji blokiraju renderiranje sa vrha stranice.

Broj blokirajućih skripti po stranici: 1. Broj blokirajućih CSS resursa po stranici: 4. Usporavaju prikaz sadržaja.
Sav sadržaj na vrhu stranice prikazuje se tek nakon što se preuzmu sljedeći resursi. Pokušajte odgoditi učitavanje ovih resursa, učitajte ih asinhrono ili ih sami ugradite važne komponente direktno u HTML kod.
Uklonite JavaScript koji blokira prikaz:

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

Optimizirajte CSS rad na sljedećim resursima:

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

Ovdje je problem jasniji, ali još ne znam kako da ga riješim. uploaded to lokalni server kopiju stranice za sigurno uređivanje koda. Mi ćemo trenirati.

3. Minimizirajte JavaScript je prosječan nivo greške. Ispravljanje greške će malo ubrzati stranicu.
Kompresija JavaScript koda vam omogućava da smanjite količinu podataka kako biste ubrzali učitavanje, obradu i izvršenje.
Umanjite JavaScript kod na sljedećim resursima da smanjite njihovu veličinu za 19,4 KB (46%
Skraćivanje https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery-1.3.2.min.js će smanjiti veličinu za 14 KB (41%
Skraćivanje https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/js/jquery.form.js će smanjiti veličinu za 5,4 KB (64%
4. Optimizirajte slike – ovo je prosječna stopa greške. Ispravljanje greške će malo ubrzati stranicu.

Ispravan format i kompresija slika mogu smanjiti njihovu veličinu.

Optimizirajte sljedeće slike da smanjite njihovu veličinu za 5 KB (14%
Ako komprimirate sliku bez gubitaka, ona će smanjiti njenu veličinu za 2 KB (8%
Ako komprimirate sliku bez gubitaka https://prostolinux.ru/wp-content/themes/rockwell_new/rockwell/images/ico_date_orange.png, to će smanjiti njenu veličinu za 1,7 KB (31%
Ako komprimujete sliku bez gubitaka http://avatars-fast.yandex.net/get-direct/nubNH6Z6vqKZZtboVlYcQg/y80, to će smanjiti njenu veličinu za 1,3 KB (19%

5. Smanjite vrijeme odgovora servera - ovo je prosječna stopa greške. Ispravljanje greške će malo ubrzati stranicu.

Prema rezultatima testiranja, vrijeme odgovora vašeg servera je bilo 0,24 sekunde. Na ovaj pokazatelj utiču mnogi faktori. Pročitajte naše najbolje prakse i naučite kako možete pratiti i mjeriti vrijeme odgovora.

Nisam mislio da je to puno, ali izgleda da je to stvar hostinga, to morate saznati tamo.
6. Umanjite HTML je prosječan nivo greške. Ispravljanje greške će malo ubrzati stranicu.
Kompresija HTML koda (uključujući ugrađeni JavaScript ili CSS kod) smanjuje količinu podataka radi ubrzanja učitavanja i obrade.

Umanjite HTML kod na sljedećim resursima da smanjite njihovu veličinu za 1,7 KB (8%
Smanjenje https://prostolinux.ru/kak-usilit-signal-3g-modema/ će smanjiti veličinu za 1,7 KB (8%

Za mobilni:

Ovdje su sve greške iste, ali s tom razlikom SVI SU OZNAČENI KAO KRITIČNI!

Šta to znači? To znači da prilikom učitavanja stranice sa mobilni uređaj, sve bi trebalo da bude mnogo brže, pošto internet kanal obično već postoji.

Da, nisam rekao gdje mi je Google pokazao ove greške. I pokazao mi ih je na Google Adsense panelu. Ili možete jednostavno otići na https://developers.google.com/speed/pagespeed/insights/ i saznati šta treba popraviti, jer nije lako optimizirati kod na stranici, već samo trebate to jednom.

Ako znate kako riješiti barem neke od problema, bit ću vam jako zahvalan na savjetima. U međuvremenu ću pretraživati ​​internet u potrazi za odgovorima na ova važna pitanja...

Rješenja.

1. Uključite kompresiju.

Prva stvar koja je omogućila da se odmah postignu neka poboljšanja je dodavanje koda u fajl. htaccess, koji se nalazi u korijenu stranice.

SetOutputFilter DEFLATE Zaglavlje dodaj Vary User-Agent FileETag MTime Size ExpiresActive na ExpiresDefault "pristup plus 1 mjesec" SetOutputFilter DEFLATE

Koliko sam shvatio, sve ovo vam omogućava komprimiranje podataka na strani servera. Već sam pisao o ovome ranije, čak i objavio kod, ali ovome se može dodati još par postavki, što je poboljšalo performanse.
2. Uklonite nepotrebne skripte.

Analiza stranice je pokazala da su neke šablonske skripte ometale učitavanje stranice. Uklonjeno nekoliko skripti sljedećeg oblika sa header.php:

Nakon uklanjanja sajt je i radio i radi, za šta su bili potrebni i nisu razumeli. Gugl test je pokazao jedno po jedno, obrisao sam i provjerio. Nakon uklanjanja jednog, pojavio se sljedeći. Pa sam uklonio 4-5 komada i sve je u redu.

I poboljšati efikasnost. Ciljevi optimizacije uključuju smanjenje količine koda, količine RAM-a koji koristi program, ubrzanje programa i smanjenje broja I/O operacija.

Glavni zahtjev koji se obično postavlja metodi optimizacije je da optimizirani program mora imati isti rezultat i nuspojave na isti skup ulaznih podataka kao i neoptimizirani program. Međutim, ovaj zahtjev možda neće igrati posebnu ulogu ako se dobit od upotrebe optimizacije može smatrati važnijom od posljedica promjene ponašanja programa.

Vrste optimizacije

Optimizacija koda se može izvršiti i ručno, od strane programera i automatski. U potonjem slučaju, optimizator može biti ili zaseban softverski alat ili ugrađen u kompajler (tzv. optimizirajući kompajler). Osim toga, treba napomenuti da moderni procesori mogu optimizirati redoslijed kojim se izvršavaju instrukcije koda.

Postoje koncepti kao što su optimizacija na visokom i niskom nivou. Optimizacije visokog nivoa uglavnom provodi programer, koji, operirajući sa apstraktnim entitetima (funkcijama, procedurama, klasama, itd.) i zamišljajući opšti model za rješavanje problema, može optimizirati dizajn sistema. Optimizacije na nivou elementarnih strukturnih blokova izvornog koda (petlje, grane, itd.) se takođe obično nazivaju visokim nivoom; neki ih izdvajaju kao poseban („srednji“) nivo (N. Wirth?). Optimizacija niskog nivoa se izvodi u fazi pretvaranja izvornog koda u skup mašinskih instrukcija, a često je ova faza podložna automatizaciji. Međutim, programeri asemblerskog jezika vjeruju da nijedna mašina u tome ne može nadmašiti dobrog programera (dok se svi slažu da će loš programer učiniti strojeve još gore).

Odabir područja za optimizaciju

Kod ručnog optimiziranja koda postoji još jedan problem: morate znati ne samo kako ga optimizirati, već i gdje ga primijeniti. Obično, zbog različitih faktora (spore operacije unosa, razlika u brzini ljudskog operatera i mašine, itd.), samo 10% koda oduzima čak 90% vremena izvršenja (naravno, izjava je prilično spekulativno, i ima sumnjivu osnovu u vidu zakona Pareto, međutim, izgleda prilično uvjerljivo kod E. Tanenbauma). Pošto će se dodatno vrijeme morati potrošiti na optimizaciju, stoga bi umjesto pokušaja optimizacije cijelog programa bilo bolje optimizirati ovih "kritičnih" 10% vremena izvršavanja. Takav dio koda naziva se usko grlo ili usko grlo, a za njegovo određivanje koriste se posebni programi - profileri koji vam omogućavaju mjerenje vremena različitih dijelova programa.

Zapravo, u praksi se optimizacija često radi nakon "haotične" faze programiranja (uključujući stvari poput "", "shvatit ćemo kasnije", "svejedno ćemo to učiniti"), tako da je to mješavina ispravnih optimizacija, refaktoriranje i popravljanje: pojednostavljenje "fantastičnih" konstrukcija poput strlen(path.c_str()), booleovih uslova (a.x != 0 && a.x != 0), itd. Profileri teško da su pogodni za takve optimizacije. Međutim, da biste otkrili takva mjesta, možete koristiti programe – alate za pronalaženje semantičkih grešaka na osnovu dubinske analize izvornog koda – uostalom, kao što možete vidjeti iz drugog primjera, neefikasan kod može biti rezultat grešaka (npr. greške u kucanju u ovom primeru - najverovatnije, a.x != 0 && a.y != 0). Dobar će otkriti takav kod i prikazati poruku upozorenja.

Šteta i korist od optimizacija

Gotovo sve u programiranju treba tretirati racionalno, a optimizacije nisu izuzetak. Vjeruje se da neiskusni asemblerski programer obično piše kod koji je 3-5 puta sporiji od koda generiranog kompajlerom (Zubkov). Postoji dobro poznat izraz o ranim optimizacijama na prilično niskom nivou (poput borbe za dodatni operator ili varijablu), koji je formulisao Knuth: "Preuranjena optimizacija je korijen svih problema."

Većina ljudi nema pritužbi na optimizacije koje provodi optimizator, a ponekad su neke optimizacije praktički standardne i obavezne - na primjer, optimizacija rep rekurzije u funkcionalnim jezicima (rekurzija repa je posebna vrsta rekurzije koja se može svesti na oblik ciklusa).

Međutim, treba shvatiti da brojne složene optimizacije na razini strojnog koda mogu uvelike usporiti proces kompilacije. Štaviše, dobitak od njih može biti izuzetno mali u poređenju sa optimizacijama ukupnog dizajna sistema (Wirth). Također, ne treba zaboraviti da moderni, sintaktički i semantički "fensi" jezici imaju mnogo suptilnosti, a programer koji ih ne uzme u obzir može biti iznenađen posljedicama optimizacije.

Na primjer, razmotrite jezik C++ i tzv. Optimizacija povratne vrijednosti, čija je suština da kompajler ne smije kreirati kopije privremenog objekta koji vraća funkcija. Pošto u ovom slučaju kompajler "preskače" kopiju, ovaj trik se naziva i "Elizija kopiranja". Dakle, sljedeći kod:

#include 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(); }

može imati nekoliko izlaznih opcija:

Zdravo svijete! Napravljena je kopija. Napravljena je kopija. Zdravo svijete! Napravljena je kopija. Zdravo svijete!

Ironično, sve tri opcije su legalne, jer standard jezika dozvoljava da se u ovom slučaju izostavi poziv konstruktora kopiranja, čak i ako konstruktor ima sporedne efekte (§12.8 Kopiranje objekata klase, klauzula 15).

Ishod

Stoga, ne zaboravite optimizirati kod, koristeći specijalizirane softverske alate ako je moguće, ali to treba učiniti pažljivo i oprezno, a ponekad i pripremiti se za iznenađenja od kompajlera.

PVS Studio

Bibliografska lista

  • E. Tanenbaum. Arhitektura računara.
  • Wirth N. Građevni kompajleri.
  • Knut D. Umjetnost programiranja, tom 1. Osnovni algoritmi.
  • Zubkov S.V. Asembler za DOS, Windows i UNIX.
  • Wikipedia. optimizacija koda.
  • Wikipedia.

Optimizacija HTML koda i kaskadnih stilova (CSS) neophodna je kako bi se ubrzao proces učitavanja stranice i sadržaja koji se na njoj nalazi. Ušteda u vremenu i prometu, općenito, nakon dužeg vremenskog perioda nakon optimizacije, ispostavit će se značajnom, čak i ako promjena brzine nije jako primjetna spolja.

Optimizacija HTML koda

Da bi HTML kod doprinio brzom učitavanju stranice, mora ispuniti nekoliko uslova:

  • Budite jednostavni i informativni. Nakon što provjerite valjanost, trebate ispraviti greške kako bi botovi lakše analizirali. Kôd treba jasno predstavljati strukturu stranice.
  • Glavne komponente stranica, kao što su naslovi, indeksi, blokovi informacija treba lako i brzo identifikovati.
  • Oslobađanje koda od nepotrebnih informacija, stavljanje u zasebne datoteke (na primjer, možete staviti CSS i JS) povećat će brzinu preuzimanja, što također pojednostavljuje rad botova.

Postizanjem ispunjenja ovih uslova, sajt se može učiniti bržim, praktičnijim i povećati efikasnost njegovog indeksiranja botovima pretraživača.

Redukcija koda i CSS optimizacija

Kod stranice možete olakšati smanjenjem njegovog volumena. Da biste to učinili, morate izvršiti nekoliko operacija.

Prije svega, trebali biste izbjegavati flash tehnologije, JavaScript, okvire, tekst predstavljen slikom. Svi elementi, ako je moguće, trebaju biti prikazani u zasebnim, vanjskim datotekama (na primjer, CSS i JS, kao što je gore navedeno). Posebni dodaci će vam pomoći da optimizirate kod. Na primjer, možete instalirati dodatak Autoptimize, koji automatski optimizira HTML, CSS, JS kod (ako označite odgovarajuća polja). Potrebno je postaviti kompetentnu i praktičnu navigaciju sajta, koja će biti razumljiva korisnicima i ispravno prepoznata od strane pretraživača. Ovo će povećati brzinu, kvalitet učitavanja i indeksiranja stranice.

Što se tiče CSS optimizacije, to možete učiniti sami ili povjeriti posebnom resursu ili programu. Ručna optimizacija je dugotrajan i dugotrajan proces, osim toga možete propustiti neke greške. Program ili servis za optimizaciju će bolje otkloniti nedostatke, ali može poremetiti neke od funkcija koje su radile na stranici, a nakon provjere sadržaj možda neće biti ispravno prikazan, pa je potrebno ispraviti njihov rad.

Neki načini za ručno poboljšanje CSS strukture:

  • Uklonite dodatne razmake i prijelome reda koji preopterećuju CSS datoteku i otežavaju robotima rad;
  • Napišite generalizirajuća svojstva umjesto ponavljanja sličnih naredbi nekoliko puta;
  • Koristite sažete, razumljive opise u komentarima;
  • Pišite neobične fontove koristeći stilove, a ne slike;
  • Za slike kreirajte alt i naslov (različiti za svaku sliku) tako da botovi pretraživača prepoznaju njihov sadržaj;
  • Primijenite H1 alate na naslove - i tako dalje, tako da budu ispravno prepoznati tokom indeksiranja;
  • Propišite u ključnim riječima samo one ključne riječi koje se koriste na stranici, minimizirajte njihov broj;
  • Koristite različite i sažete meta oznake.

CSS i HTML optimizatori

Možete jednostavno i brzo optimizirati direktno u pregledniku koristeći posebne usluge, na primjer:

  • CleanCSS.com;
  • CSS Optimizer;
  • CSS kompresor
  • CYPR.com;
  • dodatak za automatsku optimizaciju.

Stručnjaci za SEO i IT savjetuju korištenje CleanCSS.com, jer vam omogućava da odaberete nivo kompresije od niskog do visokog ili odaberete pojedinačna podešavanja. Nakon visokog i najvišeg nivoa optimizacije, kod stranice postaje gotovo nečitljiv, te će biti gotovo nemoguće izvršiti izmjene na njemu. Stoga, za početak, trebali biste koristiti standardnu ​​optimizaciju. Možete odabrati načine kompresije za određeni sadržaj ili optimizirati pojedinačne parametre: kompresiju fontova, slika, uklanjanje razmaka.

CY-PR.com takođe ima sličan alat za optimizaciju koji olakšava CSS strukturu za 25-30%, ali ne postoji način da se generiše kodna datoteka nakon operacije.

Ostatak servisa može radikalno promijeniti kod tako da neke funkcije na stranici prestanu raditi. Stoga je uz njihovu pomoć bolje napraviti samo lokalne promjene u određenim parametrima stranice.

Nakon optimizacije treba provjeriti performanse stranice, ispravan prikaz dizajna i brzinu preuzimanja. Normalna je situacija kada se stranice i korisničke opcije stranice ne učitavaju duže od 3-5 sekundi.

Da biste provjerili stepen optimizacije i shvatili koliko je HTML kod sada napisan, možete koristiti usluge kao što su:

  • optimizacija.com;
  • Seo-checklist portala;
  • firebug plugin.

Ovi alati će vam pomoći da provjerite da li je sve urađeno da se smanji količina HTML koda i poboljša njegova struktura. Na resursu SEO kontrolne liste možete provjeriti listu onoga što je već urađeno za optimizaciju, a šta još nije urađeno i postaviti oznaku na završena djela.

Validacija

Možete provjeriti greške u kodu stranice koristeći usluge provjere valjanosti - validatore. Efikasna validacija koda se vrši sa validator.w3c.org

Ako sistem generiše više od pola hiljade grešaka tokom prve provjere, ne biste trebali biti uznemireni. Nakon ispravljanja određenog kvara, možete ponovo pokrenuti provjeru i bit će mnogo manje grešaka, jer jedan nedostatak povlači za sobom druge, a kada se ispravi, one će nestati.

Stranica s ispravljenim i optimiziranim kodom je vjerojatnije da će se visoko rangirati u rezultatima pretraživanja nego resurs s preopterećenim HTML kodom koji sadrži greške.

Optimizacija koda naziva se promjena ispravnog koda, s ciljem povećanja njegove efikasnosti. “Optimizacija” znači unošenje malih izmjena koje utiču na jednu klasu, jedan metod i najčešće nekoliko linija koda. Velike promjene dizajna ili druga poboljšanja performansi visokog nivoa ne smatraju se optimizacijama. Ovo nije najefikasniji način za poboljšanje performansi. Poboljšanje arhitekture programa, redizajn klasa i izbor efikasnijeg algoritma dovode do impresivnijih rezultata. Osim toga, optimizacija koda nije najlakši način za poboljšanje performansi: lakše je kupiti novi hardver ili kompajler sa poboljšanim modulom za optimizaciju. Konačno, to nije najjeftiniji način za poboljšanje performansi: potrebno je puno vremena za ručnu optimizaciju koda u početku, a zatim je optimizirani kod teže održavati.

Optimizacija od strane programera.

1). Proširite strukturu podataka dodavanjem dodatnih informacija ili promijenite reprezentaciju podataka u ovoj strukturi. 2). Izračunajte rezultate unaprijed i pohranite ih za kasniju upotrebu. 3) . Primjena pakovanja podataka. 4) . Unutrašnja petlja treba da sadrži minimalni mogući broj provjera, a najbolje od svega, samo jednu. 5) . Uklanjanje bezuslovnih skokova. 6) . Booleove provjere treba urediti tako da brži uvjeti za koje je vjerovatnije da će biti tačni dođu prije sporijih uslova za koje je manje vjerovatno da će biti tačni. 7). Logička funkcija na malom skupu početnih vrijednosti može se zamijeniti tablicom koja predstavlja ovaj skup. 8). Uklanjanje duplih izraza. 9). Ako se dva ili više identičnih izraza često procjenjuju u nizu, treba ih premjestiti u potprogram. 10) . Promjena tipova podataka može biti efikasan način za smanjenje koda i poboljšanje njegovih performansi. 11) . Prepisivanje koda na jeziku niskog nivoa. Ako su performanse niske, kod treba ponovo napisati na jeziku niskog nivoa. Ako pišete u C++, jezik niskog nivoa može biti Assembler. Ponovno pisanje koda na jeziku niskog nivoa obično ima pozitivan učinak na performanse koda.

Optimizacija kompajlera.

Metode optimizacije koda mogu se primijeniti na različitim nivoima sintaktičkih konstrukcija: 1 ). na nivou operatera - većina kompajlera vrši neku optimizaciju na ovom nivou. 2 ). na nivou bloka - optimizirajući kompajler dodjeljuje operativnu strukturu programu konstruirajući usmjereni graf toka programa, u kojem svaki vrh predstavlja glavni blok, a veze između vrhova predstavljaju kontrolne tokove. Većina kompajlera vrši optimizaciju na nivou bloka. 3 ). na nivou ciklusa. 4 ). na nivou programa - najteži nivo optimizacije.

Što je viši nivo optimizacije, to je više mogućnosti za povećanje brzine programskog modula. Međutim, trošak primjene većeg stepena optimizacije može značajno povećati vrijeme kompilacije.

42. Dizajn programa: glavne tačke.

1) Opis implementacije (jezik, programsko okruženje, testiranje, predviđeno izvršenje):

veličine u bajtovima, operacijama, linijama;

veličina potrebne memorije za podatke;

Potrebni tehnički resursi.

2) Pristup potprogramu (broj, tip i redosled prenosa ulaznih parametara): način prenosa (po referenci ili po vrednosti).

3) Opis vraćenih parametara:

parametar koji vraća sama funkcija;

opis ulaznih parametara koje funkcija mijenja.

4) Opis izuzetnih situacija i programske reakcije na njih.

5) Opis programskih poruka, ako ih ima.

6) Kratak opis algoritma:

Ako ima ime, navedite ga;

imenovati izvor ili gdje je dat tekst programa, odakle je algoritam preuzet;

Možete dati blok dijagram.

8) Opišite sve ulazne i izlazne datoteke i kratak sažetak njihovog sadržaja.

9) Navedite strukture zapisa svih datoteka:

Raščlamba po poljima zapisa;



Učitavanje...
Top