Optymalizacja

0

Optymalizacja kodu.

Witam, pisze sobie programik(gre) w delphi. I mam troche pytan odnosnie optymalizacji kodu.

  1. Czy warto wydluzac kod programu np o 50 linijek, aby w programie wystapilo jedno porownanie wartosci mniej?
  2. Czy wykorzystywanie duzej ilosci zmiennych typu Boolean jest dobrym zwyczajem?
  3. Mamy dane:

var
M, N : Integer;
Tab1, Tab2 := array[0..3, 0..3] of Integer;
begin
for M := 0 to 3 do
for N := 0 to 3 do
Tab2[M, N] := 0;
...
end;

i teraz ktora wypelnienie tablicy zerami wykona sie szybciej:

for M := 0 to 3 do
  for N := 0 to 3 do
    Tab1[M, N] := 0;

czy:

Tab1 := Tab2;

A moze jest jaaks gotowa funkcja na wypelnienie calej tablicy jednya wartoscia?
4. Dany mamy:

P : TPoint;

i co wykona sie szybciej:

P.X := 2;
P.Y := 7;

czy:

P := Point(2, 7);

I to chyba na razie wszystkie pytania z tego dzialu:)

0
  1. Czy warto wydluzac kod programu np o 50 linijek, aby w programie wystapilo jedno porownanie wartosci mniej?

Nie bardzo.

  1. Czy wykorzystywanie duzej ilosci zmiennych typu Boolean jest dobrym zwyczajem?

To zależy do czego używasz. Musi być konkretny przykład.

  1. Mamy dane:
    ...
    A moze jest jaaks gotowa funkcja na wypelnienie calej tablicy jednya wartoscia?

Tab1 := Tab2; jest chyba szybsze.
Inna metoda:
FillChar(Tab2, SizeOf(Tab1), 0);

  1. Dany mamy:

P : TPoint;

i co wykona sie szybciej:

P.X := 2;
P.Y := 7;

czy:

P := Point(2, 7);

Pierwsze szybciej.

0

i teraz ktora wypelnienie tablicy zerami wykona sie szybciej:
i co wykona sie szybciej:

Przypominam, że w FAQ są metody pomiaru czasu wykonywania kodu.

[A ja przypominam, że można w Debuggerze zobaczyć kod w asm :) Ale oczywiście dla nieznajacych asm, lepiej skorzystać z porady pq - m.D.]

1 użytkowników online, w tym zalogowanych: 0, gości: 1