[Delphi] Welk dood hout elimineert de compiler?

Pagina: 1
Acties:

  • Tomatoman
  • Registratie: November 2000
  • Laatst online: 22:24

Tomatoman

Fulltime prutser

Topicstarter
Naar aanleiding van een vraag in een andere thread vraag ik mij af wat de compiler precies elimineert en wat in mijn applicatie gelinkt wordt. Heeft iemand antwoord, eventueel aan de hand van onderstaande unit?
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
unit LegeUnit;

interface

uses
  Classes, OngebruikteUnit;

type
  TDoeNietsObject = class(TObject)
  public
    procedure MethodDoeNiets;
  end;

procedure GlobalDoeNiets;

var
  DoeNietsObject: TDoeNietsObject;
  GlobalVarInterface: Integer;

implementation

var
  GlobalVarImplementation: Integer;

procedure GlobalDoeNiets;
begin
end;

procedure LocalDoeNiets;
var
  LocalVarDoeNiets: Integer;
begin
end;

procedure TDoeNietsObject.MethodDoeNiets;
begin
end;

end.

Een goede grap mag vrienden kosten.


Verwijderd

Om te zien wat van code delphi er van brouwt kun tijdens het draaien van het programma op rechtermuisknop klikken dan debug en dan view cpu. Je krijgt dan assembler te zien. Delphi haalt alle nutteloze lokale variabelen weg tenminste als je optimisation aan hebt staan. Maar als je een lege procedure aanroept dan wordt die wel uitgevoerd. En voor de rest weet ik niet hoe delphi met loze dingen omgaat want ik heb geen idee wat de linker wel of niet doet.

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 20:40

Creepy

Tactical Espionage Splatterer

Delphi zet blauwe puntjes voor elke regel source code na het compileren.

Als Delphi er GEEN blauwe puntjes voor zet, dan zijn die regels code er uit gehaald, en dus niet gecompileerd.

Delphi compileert functies die niet worden aangeroepen ook niet mee, ook al staat er nog zoveel code in.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney