Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

efficienza freepascal

2 views
Skip to first unread message

c

unread,
Nov 19, 2008, 3:53:01 PM11/19/08
to
una domanda
dato questi frammenti
i:integer
max:integer
...
...
i:=1;
while i < max do
begin
i:=i+1:
end;
oppure
while i < max do
begin
inc(i);
end;

quale dei due è migliore?
saluti e
grazie
Claudio


Il Razziatore

unread,
Nov 19, 2008, 4:11:02 PM11/19/08
to
c ha scritto:
> una domanda
> i:=i+1:
> oppure
> inc(i);

> quale dei due è migliore?

Sul freepascal non so, ma sul turbo pascal è meglio la seconda inc( i );

E' più ottimizzata visto che viene tradotta in questo modo:

INC WORD PTR [ PROGRAM.I ] { FF06XXXX = 4 byte }

mentre i := i + 1 viene tradotto come:

MOV AX, [ PROGRAM.I ] { A1XXXX = 3 byte }
INC AX { 40 = 1 byte }
MOV [ PROGRAM.I ], AX { A3XXXX = 3 byte, per un totale di 7 byte }

ripeto che non so come "compila" il FreePascal :)

--
Il Razziatore,
"Lo sviluppo di una nazione si misura anche dallo stato della sua rete
ferroviaria". Camillo Benso Conte di Cavour
"Per tutto quanto non previsto nel presente regolamento il capostazione
deve usare senno e ponderatezza." Regolamento d'esercizio FS
-----------------------------------------------
MSN : IlRazz...@netscape.net
ICQ : 67552596
Yhaoo : Razziatore82
-----------------------------------------------
Founder of MediaPlayer Project
http://razziatore.no-ip.com/mpp/

0 new messages