Ver. 1.0 Beta, Don't have a compiler? Now you can write simple scripts ONLINE! This is a basic version -does not include all the Pascal statements. Only to learn basics

Optymalizacja Twoich programów Pascal, Delphi

Pascal

Optymalizacja Twoich programów Pascal, Delphi

Optymalizacja programu


Aby Twoje programy działały naprawdę szybko, powinienneś stosować pewne zasady, które pozwolą Ci robić to samo, ale szybciej. Zobacz kilka konkretnych przykładów jak możesz zoptymalizować swoje kody źródłowe.


Uwaga, podane zasady dotyczą również innych języków programowania, np. C++. Niektóre z nich pozwalają efektywniej programować w php i java script.


Warunki




Zastosowanie standardowe

Oprogramowane optymalnie

Opis

i:= 1;


if (i = 1) then i:=2 else i:=1;


i:= 1;


i := 3 – i;


Zamiast stosować warunek, może wystarczy odpowiednie działanie matematyczne

i:= i + 1; if (i>=10) then i:= 0;

i:= (i + 1) mod 10;


To raczej przykład skrótu zapisu. Warto wykorzystywać resztę z dzielenia do niektórych obliczeń


if (s = 'napis') and (i = 0) then


if (i=0) and (s = 'napis')


Na początku warunku korzystaj z takich wyrażeń, których sprawdzenie jest szybsze. Gdy i będzie inne niż 0, możesz zaoszczędzić czas. Szczególnie ważne przy korzystaniu z czasochłonnych funkcji


if b = true then

if b then

Jeśli b jest boolean, po co go jeszcze porównywać z true?


if b = true then a:= 10 else a:=0;

a:= integer(b) * 10;

Rzutowanie wartości true na integer daje 1, gdy false 0, jak pomnożysz, otrzymasz wynik bez warunku


Procedury i funkcje






Zastosowanie standardowe

Oprogramowane optymalnie

Opis

procedure nazwa(s : string);

procedure nazwa(const s : string);


lub

procedure nazwa(var s : string);

Zamiast 256 bajtów napisu kopiowanych do procedury, zostanie przesłane tylko 4 bajty -adres napisu w pamięci (zastosowanie daje pewne ograniczenia -tylko do odczytu, lub do zapisu na oryginale)

a:= funkcja(b);

c:= funkcja(b) * 4;

a:= funkcja(b);


c:= a * 4;


Jeśli to tylko możliwe, nie wywołuj wiele razy tej samej funkcji. Zapamiętaj jej wartość i korzystaj z zapamiętanej kopii


Pętle




Zastosowanie standardowe


Oprogramowane optymalnie


Opis


for i:=1 to x*y do


Ilosc:= x * y;


for i:=1 to Ilosc do


Jeśli możesz zrobić coś przed pętlą, zrób to. W pętli używaj tego co naprawdę trzeba


A:= 10;


for i:=1 to 100 do


begin


x := 4 *a;


b := x * i;


end;


A:=10;


x:= 4*a;


for i := 1 to 100 do


begin


b:= x*i;


end;


Repeat


zrob_cos;


until keypressed;

Repeat


if naprawde_trzeba then zrob_cos;


until keypressed;




Operacje matematyczne



Zastosowanie standardowe

Oprogramowane optymalnie

Opis

i:= i + 1;

Inc(i);

W assemblerze Inc jest szybsze niż Add, stąd przy naprawdę dużym obciążeniu Inc zajmie mniej taktów procesora

a := b div 2;

a := b shr 1;

w c++


a = b >> 1;

Dzielenie liczb całkowitych przez potęgi dwójki, można zapisać przesunięciem bitowym. Jest znacznie szybsze.

a := y * 640 + x;

a := (y shl 7) + (y shl 9) + x;

Inaczej y * 512 + y * 128 + x to to samo co y * 640 + x, jednak znacznie szybsze. Stosowane przy tworzeniu szybkich operacji graficznych

R: Real;

{$N+}

R : Single;


{$N+} Dotyczy pascala. Użycie dyrektywy {$N+} i stosowanie single zamiast real pozwala na wykonywanie szybszych operacji zmiennoprzecinkowych


Optymalizacja programu


Zastosowanie standardowe

Oprogramowane optymalnie

Opis


SELECT * FROM tabela

SELECT pole1, pole2 FROM tabela

MySQL: Jeśli nie potrzebujesz wszystkich danych, to po co je przesyłać? To może znacznie przyspieszyć

a = 9.81 * t * t / 2;

a2 = 9.81 * t2 * t2 / 2;

const g = 9.81;


function get_a(t : single) : single;

begin


get_a := g * sqr(t) / 2;

end;


a := get_a(t);

a2 := get_a(t2);

Stosuj stałe. Nigdy nie wpisuj w kodzie 2 razy tych samych wyliczeń. Praktyka pokazuje, że później będziesz poprawiał kilka miejsc zamiast jednego. Pisz procedury i funkcje.



 

ON-LINE scripts!

In tutorial
turbo pascal kurs, programowanie w pascalu, optymalizacja programów, programowanie optymalne, szybkie programy

This website uses cookie files in order to provide Google services (advertisements, analitycs) and Facebook. If you want to block using cookies, turn them off in your browser settings. Need a help? Click me