AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi am "Ende"?

Ein Thema von Mavarik · begonnen am 3. Jan 2011 · letzter Beitrag vom 3. Apr 2011
Antwort Antwort
Robotiker
(Gast)

n/a Beiträge
 
#1

AW: Delphi am "Ende"?

  Alt 30. Mär 2011, 07:36
Es mag schon stimmen, dass andere Compiler, vor allem im Bereich C/C++, besser und aufwändiger optimieren als Delphi. Das sind aber im Gegensatz zu Delphi praktisch immer Multipass-Compiler, mit dem Nachteil, dass der Kompiliervorgang auch deutlich länger dauert. In kaum einer anderen Sprache kann man so schnell mal eben Code schreiben, kompilieren und testen wie in Delphi.

Daran sieht man eben, dass Delphi mehr auf RAD ausgelegt ist, als auf hohe Runtime-Performance.
Ich hatte ja schon mal in einem anderen Thread geschrieben, es gab mal ein Borland Produkt, wo man den Unterschied schön sehen konnte. Der C++ BuilderX enthielt in den größeren Versionen den Compiler aus dem C++ Builder 6, den Intel Compiler und den MingW (GNU Compiler für Windows) und konnte den Compiler aus dem parallel installierten Visual Studio 2003 verwenden.

Man konnte also in einer IDE den gleichen Code mit vier Compilern übersetzen. Die Unterschiede bei der Übersetzungszeit waren teilweise dramatisch. Ich kann mich an ein Projekt erinnern, da brauchte der Borland 16 Sekunden und der GNU knapp 3 Minuten.

Die Geschwindigkeit des erzeugten Codes war praktisch immer in der Reihenfolge Intel, MS, GNU, Borland. Aber sehr abhängig von dem, was da gerechnet wurde. Bei numerischen Sachen konnte sich der Intel extrem absetzen, Borland fiel weit zurück. Bei Stringoperationen (z.B. XML) praktisch kaum ein Unterschied zwischen MS und Intel, GNU und Borland gemeinsam etwas abgeschlagen.

Grundsätzlich gilt das heute zwischen C++ Builder XE und Visual Studio 2010 immer noch, alles was viel rechnet, wirkt mit dem bcc32 übersetzt etwas träge.

Geändert von Robotiker (30. Mär 2011 um 07:39 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Delphi am "Ende"?

  Alt 30. Mär 2011, 08:08
Aus meiner Vergangenheit weiß ich, das der Sybase PowerBuilder das Problem relativ elegant gelöst hat: zum Entwickeln und testen gibt es ein schnelles Compilieren ("Build"), bei dem nur die Änderungen neu übersetzt werden und für Releases ein gründliches Compilieren ("Full rebuild"), bei dem der komplette Sourcecode neu übersetzt wird. Vielleicht wäre das in Verbindung mit einem hochperformanten Multipass-Compiler eine Option für Delphi.
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?

Geändert von HeikoAdams (30. Mär 2011 um 08:11 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.420 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delphi am "Ende"?

  Alt 30. Mär 2011, 10:40
zum Entwickeln und testen gibt es ein schnelles Compilieren ("Build"), bei dem nur die Änderungen neu übersetzt werden und für Releases ein gründliches Compilieren ("Full rebuild"), bei dem der komplette Sourcecode neu übersetzt wird. Vielleicht wäre das in Verbindung mit einem hochperformanten Multipass-Compiler eine Option für Delphi.
Gibt es doch auch schon jetzt, bzw. schon sehr lange?

> Compilieren > nur neues/geändertes Compilieren
> Erzeugen > alles neu Compilieren
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.879 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Delphi am "Ende"?

  Alt 30. Mär 2011, 10:56
Aber nur auf Unitebene. Die Units mit Änderungen werden komplett neu kompiliert.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.420 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delphi am "Ende"?

  Alt 30. Mär 2011, 11:02
Aber nur auf Unitebene. Die Units mit Änderungen werden komplett neu kompiliert.
Was Delphi leider auch nicht mitbekommt,
wenn man über die Projektoptionen oder als Parameter an den CommandLineCompiler einen/mehrere Compilerschalter übergibt,
dann bekommt Delphi diese Änderung nicht mit, wenn diese Schalter in einer Unit verwendet werden (z.B. {$IFDEF} ).
Wurde eine unit also als unverändert erkannt, egal ob sich Compilerschalter und somit die Quellcodeauswertung verändert haben (der Quellcode selber blieb j unverändert), dann wird blöder weise nicht neu kompiliert.

Ebenso kann dieses bei Includedateien passieren.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz