Windows 7, jaki kompilator

0

Jaki kompilator polecacie pod Windows 7 64 bit, żeby tworzone aplikacje chodziły bezproblemowo, czy moze pozostac przy delphi 7 ?

Pzdr

0

Delphi 7 to inna epoka :) Raczej pod nowe systemy zaleca się korzystać z aktualnych rozwiązań.

0

Jaki kompilator polecacie pod Windows 7 64 bit, żeby tworzone aplikacje chodziły bezproblemowo

Przecież spod każdego działają dobrze, czyż nie?
Ja polecę to co zwykle: FPC i ew. Lazarusa do tego jeżeli chodzi tobie o kompletne IDE. Masz tam możliwość generowania kodu zarówno x86 jak i x64.
Delphi 7 to generalnie rzecz ujmując bida i zdecydowanie lepiej zainteresować się FPC+Lazarusem.

1
-123oho napisał(a):

Delphi 7 to generalnie rzecz ujmując bida i zdecydowanie lepiej zainteresować się FPC+Lazarusem.

a w czym ten sławetny lazarus jest lepszy od d7 (mowa o kompilacji na x86) bo chyba nie w tym, że ma exeki kilka razy cięższe...

0

a w czym ten sławetny lazarus jest lepszy od d7 (mowa o kompilacji na x86) bo chyba nie w tym, że ma exeki kilka razy cięższe...

strip --strip-all project1.exe
upx -9 project1.exe
~600Kb. Może i wydaje się sporo, ale nie przesadzajmy, w dzisiejszych czasach aż tak dużo to nie jest. A jak za dużo to zawsze możesz pomóc w ulepszaniu kompilatora i to jest właśnie to co wyróżnia Lazarusa i FPC od Delphi.

Lazarus wskazuje odpowiadające bloki begin..end, nawiasy, procedury, klasy. Jest też znośnie spolszczone chociaż przydałoby się dodać to czego jeszcze nie ma.
No i w D7 nie napiszesz sobie kodu na Atari 800XL (FPC 1.X.X to wspierał) ani pod Linuxa ani pod Maca... (tak wiem mówiłeś o x86, patrz dalej)

(mowa o kompilacji na x86)

Pomijając takie rzeczy, że nowe D ma generyki, metody anonimowe i inne "bajery"

No to w sumie można ciągle używać Delphi 1 i pisać w asmie czyż nie?
Twoje pytanie brzmi mniej więcej tak: Co ten Lazarus ma, poza tym czego D7 nie ma? Nie sądzisz że pytanie głupie? Sam wymieniłeś zalety Lazarusa, tylko mówiąc żebyśmy ich nie wymieniali (bo D7 tego nie ma?).

0

Odpowiedź jest prosta.
Delphi 7 w wersji podstawowej (Personal) nie stworzy aplikacji dla Win7 którą zaakceptował by Microsoft.

A to przez co najmniej dwie rzeczy:

  • błąd klawisza Alt (szukać: "delphi 7 alt key fix vista") - znikające kontrolki po naciśnięciu akceleratora
  • przez brak obsługi nowszego systemu pomocy HTML help

W związku z tymi dwoma rzeczami można ściągnąć odpowiednie biblioteki / komponenty ale błąd nr 1 dla mnie rozwiązany jest tylko połowicznie (workaround).

Lazarus jest lepszy w kilku rzeczach:

  • wsparcie dla x64
  • więcej komponentów (w tym bazodanowe)
  • brak powyższych błędów

Lazarus jest gorszy w następujących rzeczach:

  • słabszy kod generowanej aplikacji (wolniejsze EXEki)
  • nie znalazłem działającego od razu profilera
0
  • słabszy kod generowanej aplikacji (wolniejsze EXEki)

Proof or die.

0
-123oho napisał(a):
  • słabszy kod generowanej aplikacji (wolniejsze EXEki)

Proof or die.

http://www.lazarus.freepascal.org/index.php?topic=343.0

Fakt... to test z 2004 roku, stary FPC. Przydałyby się testy nowego FPC vs Delphi 7 na jednej maszynie.

0

Fakt... to test z 2004 roku, stary FPC. Przydałyby się testy nowego FPC vs Delphi 7 na jednej maszynie.

Jeżeli chcesz to możesz zrobić nowy test, chyba nikt ci nie broni.

Ciekawi mnie czy ten co tam benchmarki robił:
1.Wie co to -O1 -O2 -O3 itd.
2.Wie co to wywalanie symboli debuggujących.
3.Wie jak użyć RDTSC czy czegoś innego co ma większą dokładność niż timer.

0
-123oho napisał(a):
  • słabszy kod generowanej aplikacji (wolniejsze EXEki)

Proof or die.

http://4programmers.net/Forum/C_i_C++/183852-kalkulator_onp_-_c++_vs_delphi?p=765555

0

Uzywam od rana Embarcado XE i na razie bardzo mi sie podoba.

0

Lazarus Pascal: 1.11 [s]
Delphi: 0.41 [s]

Widać że ktoś nie umie ustawić optymalizacji odpowiedniej. Btw. nie ma czegoś takiego jak 'Lazarus Pascal'.

Uzywam od rana Embarcado XE i na razie bardzo mi sie podoba.

No i?

0
-123oho napisał(a):

Lazarus Pascal: 1.11 [s]
Delphi: 0.41 [s]

Widać że ktoś nie umie ustawić optymalizacji odpowiedniej. Btw. nie ma czegoś takiego jak 'Lazarus Pascal'.

Uzywam od rana Embarcado XE i na razie bardzo mi sie podoba.

No i?

To ustaw odpowiednio, podaj parametry i wyniki...

0

To ustaw odpowiednio, podaj parametry i wyniki...

To daj źródło, bo niestety doszukać się nie mogę w tamtym topicu (linki padły).

0
-123oho napisał(a):

To ustaw odpowiednio, podaj parametry i wyniki...

To daj źródło, bo niestety doszukać się nie mogę w tamtym topicu (linki padły).

Prosze.

0

Znalazłem zanim zdążyłeś podać, miałem małe problemy ze zbudowaniem pod Delphi7 ale udało się.
Btw. W Lazarusie jest coś takiego jak Console Aplication i Program, Program=konsolka, Console Aplication=konsolka+TApplication, a po co to tobie nie wiem. Przerobiłem.

https://rapidshare.com/files/723361725/kalkulator_lpas.zip

Delphi: 2686ms
Lazarus: 1132ms

0

Sądzisz, że ktokolwiek uwierzy w takie rozbieżności :) ? Może to właśnie w Delphi nie poczyniłeś odpowiednich ustawień kompilacji?

Wyłączyłeś np. Debug information itp.?
user image
user image

Screeny nie pokazują tego co koniecznie trzeba odznaczyć, po prostu takie obrazki znalazłem na necie ;)

0

Sądzisz, że ktokolwiek uwierzy w takie rozbieżności ?

Sądzisz że biorę wartości z kosmosu?

Nie mam pojęcia czemu tak wyszło, podaję to co program. Wykonywałem pare(naście) razy i to samo (Delphi: 2600-3000, Lazarus: 1000-1500).
Jeżeli sądzisz że kłamie to dałem przecież exeki i projekty więc sprawdź.

Może to właśnie w Delphi nie poczyniłeś odpowiednich ustawień kompilacji?

Sprawdź, ustawiałem bez Debug info, bez I/O checking (itd.). Dałem optimization i stack frame. Bez stack frame daje około 2500ms.

0
-123oho napisał(a):

Sądzisz, że ktokolwiek uwierzy w takie rozbieżności ?

Sądzisz że biorę wartości z kosmosu?

Nie mam pojęcia czemu tak wyszło, podaję to co program. Wykonywałem pare(naście) razy i to samo (Delphi: 2600-3000, Lazarus: 1000-1500).
Jeżeli sądzisz że kłamie to dałem przecież exeki i projekty więc sprawdź.

Może to właśnie w Delphi nie poczyniłeś odpowiednich ustawień kompilacji?

Sprawdź, ustawiałem bez Debug info, bez I/O checking (itd.). Dałem optimization i stack frame. Bez stack frame daje około 2500ms.

Ustawiłeś tak:

I/O checking: ON
Debug information: ON
Local symbols: ON
Reference info: ON
Assertions: ON

Wynik dla Delphi 7 z tymi ustawieniami: 1530 ms
Wynik dla Lazarus FPC 2.2.4 x64: 1164 ms
Wynik dla Delphi 7 skompilowanego ze źródeł z Twojego ZIP-a z lepszymi parametrami: 1497 ms
Wynik dla Delphi 7 z mojego ZIP-a (zawiera wstawki ASM): 131 ms

Tak więc Lazarus (FPC) się obronił - no chyba że to zaleta x64 (ale nie mam wersji 32 bity).

Rozbieżność z poprzednimi wynikami wynika prawdopodobnie z tego, że w Lazarus nie zastosowałem wstawek ASM (nie mojego autorstwa).

0

Ustawiłeś tak:

I/O checking: ON
Debug information: ON
Local symbols: ON
Reference info: ON
Assertions: ON

Nie prawda, ustawiłem w porządku, ale może nie umiem zrekompilować pod Delphi . mniejsza...

Wynik dla Lazarus FPC 2.2.4 x64: 1164 ms

Wiesz że teraz już jest wersja 2.6.0?

Tak więc Lazarus (FPC) się obronił - no chyba że to zaleta x64 (ale nie mam wersji 32 bity).

Więc die ;) . Z tego co wiem to wiele instrukcji w FPC jest wolniejsza w x64 niż x86 (chociażby kopiowanie pamięci) ze względu na brak wersji w asmie. Nie wiem na ile to prawda, bo nie mam OS x64...

0
-123oho napisał(a):

Wynik dla Lazarus FPC 2.2.4 x64: 1164 ms

Wiesz że teraz już jest wersja 2.6.0?

Wynik dla FPC 2.6.0 x64: 684..720 ms

  • no i to jest wynik nareszcie niezły (chociaż i tak słabszy od reszty w zestawieniu z poprzedniego wątku)

Wynik dla FPC 2.6.0 x32: 1083..1095 ms

0

Wynik dla FPC 2.6.0 x64: 684..720 ms

  • no i to jest wynik nareszcie niezły (chociaż i tak słabszy od reszty w zestawieniu z poprzedniego wątku)

Na myśl przychodzi mi tylko to: Hatters gonna hate.
Skoro sądzisz że jest zbyt wolno, to pokaz nam że da się szybciej, twórcy na pewno zaakceptują twoje patche.

0
-123oho napisał(a):

Wynik dla FPC 2.6.0 x64: 684..720 ms

  • no i to jest wynik nareszcie niezły (chociaż i tak słabszy od reszty w zestawieniu z poprzedniego wątku)

Na myśl przychodzi mi tylko to: Hatters gonna hate.
Skoro sądzisz że jest zbyt wolno, to pokaz nam że da się szybciej, twórcy na pewno zaakceptują twoje patche.

Nie muszę sądzić, stwierdzam fakt.
C#: 195 ms
C: 185 ms

Odwrócę twoje zdanie: jeśli uważasz że można wersję Pascal zoptymalizować to to zrób.

0

Nie muszę sądzić, stwierdzam fakt.

Wyraźnie napisałem "za wolno" nie "wolniej od innych". Za wolno to już twoja opinia. Moim zdaniem jest na tyle szybko, że przyśpieszanie nie jest zbytnio istotne. Ah ta twoja nadinterpretacja i niezrozumienie.

Odwrócę twoje zdanie: jeśli uważasz że można wersję Pascal zoptymalizować to to zrób.

Zawsze można zoptymalizować. Ale to nie jest to co napisałem, bo ja napisałem znowuż 'za wolno', nie że 'można zoptymalizować'. I twoje zdanie nie ma sensu bo też sądzisz że można zoptymalizować (bo tak się czepiasz do tego jaki to FPC wolny). Więc zamiast narzekać popraw to albo zamknij jadaczkę bo zamieniasz się w takiego hattera który ma jedną funkcję życiową.

Btw. "wersję Pascal" - Widać że 'wersja Pascala' to FPC a 'Lazarus Pascal' to Lazarus... Te twoje dialekty o_O

0

A po drugie to FPC oczywiście jest "wolny"

czy też a (?) nie zrozumiałeś nawet na czym polegała moja wypowiedź?

Tja, ktoś tu usiłuje mnie nie zrozumieć? :D

Czepiasz się słówek

Patrz wyżej i zobacz kto się czepia słówek. Ja? lol!

Chodziło o wersję Pascal KALKULATORA a nie kompilatora.

nie moja wina że piszesz tak chaotycznie, można było napisać 'ten program' i każdy by wiedział. Ale ty piszesz tak że NIKT ciebie nie rozumie i jeszcze do mnie że 'się czepiam'. lolo...

Ale spróbujmy przeanalizować to co powiedziałeś:

Odwrócę twoje zdanie: jeśli uważasz że można wersję Pascal ten program zoptymalizować to to zrób.

No naprawdę, wielkiego sensu twoja wypowiedź nabrała... Nadal wiem że można to zoptymalizować i nadal tego nie chcę zrobić bo mi to nie potrzebne. Ukryte znaczenie? Wątpię... Czy chciałeś coś pokazać tym tekstem czy po prostu walnąłeś byle co?

0
mdl napisał(a):

Jaki kompilator polecacie pod Windows 7 64 bit, żeby tworzone aplikacje chodziły bezproblemowo, czy moze pozostac przy delphi 7 ?

Pzdr

Najlepiej Delphi XE3 : ) (jak się pojawi), a na razie XE2.

Pytasz o kompilator - nie chcę się wypowiadać jak wypada kompilator Delphi vs FPC - bo nie wiem. Jeśli jednak istotne jest dla Ciebie także IDE to IMHO Delphi jest wielokrotnie bardziej dopracowane niż Lazarus (zresztą IMHO bije też inne produkty). No chyba że w ostatnim czasie coś się zmieniło. W każdym razie ile razy nie próbowałem się z Lazarusem zaprzyjaźnić tyle razy kończyło się na deinstalacji tego IDE.

b

1

Nie trzeba być hejterem, Free Pascal jest wolniejszy (w sensie: generuje wolniejszy kod) niż C#. Ale jest Open Source, więc zamiast narzekać — do roboty :-)

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