Skocz do zawartości

Tragedia!


kompustelnik

Polecane posty

Jason: Nie szczycę się tym :P, traktuję to jak przekleństwo ;P i nie wiem czy je tak bronie, napisałem dlaczego go używam a nie C++ i z całym szacunkiem ale nie przyrównuj mnie do tego psychopaty zionącego nienawiścią bo ja jestem tylko zdrowym zboczeńcem (fetyszem?:P) na punkcie Delphi :P i taki sekciarski art nie jest w moim stylu. Delphi mnie kręci i o to chodzi :)

 

Krajew & Blind: prawidłowo ;]

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 106
  • Created
  • Ostatnia odpowiedź

HNB... on zaraz na początku tego arta napisał to samo co Ty teraz :P

Jestem wielkim wielbicielem języka C++ i jednocześnie zagorzałym przeciwnikiem języków Pascalo-pochodnych. Chcę tutaj przedstawić moją subiektywną opinię o tych językach i wytłumaczyć dlaczego wolę C++ od Pascala czy Delphi. Sam sporo pisałem w Pascalu/Delphi, więc mam doświadczenie i możliwość porównania obu języków. Mam nadzieję, że ten artykuł przyda się osobom, które zastanawiają się na tym, który język wybrać w swoją dalszą podróż programistyczną.

Napisał, że to subiektywna opinia, tak samo jak i Twoja.

Link do komentarza
Udostępnij na innych stronach

Zresztą olać to ;P. Walka z wiatrakami... Już mi się nie chce pisać na tym forum ;P

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

  • 3 weeks later...

Post uległ edycji, jednak wywołania Delphi są równie optymalne (goto post 60)

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Mój cytat:

 

"A z tą wydajnością i szybkością wywoływania to po prostu pajac przegina :)" - teraz to ja wyszedłem na pajaca xD, ponieważ:

 

Napisałem nieświadomie nieprawdę (tz. odniosłem się tylko do lokalnych wywołań instrukcji - co jest prawdą, a nie do wywołań z DLL o których nie napisałem)... Niestety w tym aspekcie facet miał rację - faktycznie C++ szybciej wywołuje procedury z DLL... x_X... W praktyce wygląda to tak że Delphi "skacze" do pewnego miejsca w pamięci (tz. THUNK) w którą podczas uruchamiania aplikacji system wkleja instrukcje skoku do miejsca w pamięci... Czyli używa tz. trampoliny, skacze w jedno miejsce, później z niego we właściwe. W C++ natomiast też można tak robić ale można też to zoptymalizować __declspec (tu jest zastosowanie plików *.lib ?), i pominąć trampolinę THUNK... I od razu skoczyć do procedury w załadowanej do pamięci bibliotece... (Tu niestety C++ wyprzedza Delphi - zastanawiam się czy inaczej jest w Free Pascalu?..). Oto doc o tym:

 

http://msdn2.microsoft.com/en-us/library/z...17w(VS.80).aspx

 

Nie wiedziałem ;/. W Delphi jest tak jak napisałem bo sprawdzałem to ręcznie... Podejrzewam, że identycznie jest w FPC. Niestety ;(. Pozostałe wywołania w Delphi są optymalne.

Tak jak ktoś kiedyś wspomniał o porównaniu Firefoxa i Opery... tak samo Delphi bez kilku zalet C++'a jest od niego lepszy :]

Link do komentarza
Udostępnij na innych stronach

Toster ja bym to podzielił na 3 kategorie:

 

* statyczno-dynamiczne

* statyczne (trik dzięki *.lib ?)

* dynamiczne

 

dajmy na to że procedura z dll jest pod adresem $XXXXXXXX, a specjalna komórka z tablicy "First thunk" pod $YYYYYYYY (pseudokody wszystko wyjaśnią)

 

 

wywołanie statyczno-dynamiczne (Delphi/C++)

 

KODcall [$YYYYYYYY]

// skaczemy teraz do miejsca w pamięci $YYYYYYYY

// i w miejscu $YYYYYYYY mamy kod:

jmp dword ptr [$XXXXXXXX]

wywołanie statyczne szybsze (Delphi/C++)

 

KODcall [$XXXXXXXX]

wywołanie dynamiczne (Delphi/C++)

 

KOD// przy inicjowaniu jednorazowo

mov zmienna, $XXXXXXXX

// i kiedyś tam w programie

call dword ptr [zmienna]

 

Statyczne jest "Szybsze" od dynamicznego bo dynamiczne call musi odczytać adres z komórki pamięci a call na sucho ma bezpośredni adres. Między dynamicznym a statycznym jest bardzo niewielka różnica czasowa (ale jednak jest, a jako ciekawostkę powiem że jak dzwonimy "dynamicznie" call jakiś_rejestr to wtedy prędkość jest taka sama - ale to bez sensu bo musielibyśmy na stałe zapychać rejestr żeby nie tracić czasu na kopiowanie zmiennej do niego).

 

Teraz pytanie czy dynamiczne jest szybsze od statyczno-dynamicznego (Sprawdziłem z ciekawości te prędkości w instrukcji intela.)? Tak i to zawsze (co prawda niewiele :P - więc chyba warto używać do grafiki OGL np. modułu dglOpenGL.pas który ładuje OpenGL dynamicznie)...

 

Różnice czasowe nie są zbyt wielkie, ale nie mi to oceniać bo nie jestem specjalistą odnośnie architektury procesorów i nie wiem jaki to będzie miało wpływ na ogólną wydajność...

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

HNB cos dla ciebie, pisze sobie co jakis czas z gosciem od tego artsa. Dzisiaj napisal mi cos takiego:

 

Witam jeszcze raz.

Jeśli masz czas, to możesz zerknąć na testy wydajności: C++ kontra Delphi.

Nie piszę bzdur.

http://www.epokay.net/artur/cpp_najlepszy.htm

 

odpisalem mu:

 

Witam,

Testy przejrzalem pobierznie ustosunkuje sie do nich w chwili gdy bede mial troche czasu (ten tydzien mam zawalony niestety). Jedno big zastrzezenie to co wypisales nie daje zadnych podstaw do twierdzen ktore napisales bo:

1. Nie podales kodu ktory testowales (C++/Delphi)

2. Nie podales ustawien kompilatora przy ktorych testowales programy.

 

Pozdrawiam, Toster

 

W sumie chcialbym zweryfikowac te wyniki ale tak jak napisalem nie mam czasu (faken) wiec jakby cie to zainteresowalo moze bys zrobil te testy porownawcze + moze jeszcze jakies ?

Always Dark<br />u1_tt_logo.png banner-1.pngexFabula-banner.pngson_banner_ubersmall.jpg

Link do komentarza
Udostępnij na innych stronach

HNB cos dla ciebie, pisze sobie co jakis czas z gosciem od tego artsa. Dzisiaj napisal mi cos takiego:

 

Witam jeszcze raz.

Jeśli masz czas, to możesz zerknąć na testy wydajności: C++ kontra Delphi.

Nie piszę bzdur.

http://www.epokay.net/artur/cpp_najlepszy.htm

 

odpisalem mu:

 

Witam,

Testy przejrzalem pobierznie ustosunkuje sie do nich w chwili gdy bede mial troche czasu (ten tydzien mam zawalony niestety). Jedno big zastrzezenie to co wypisales nie daje zadnych podstaw do twierdzen ktore napisales bo:

1. Nie podales kodu ktory testowales (C++/Delphi)

2. Nie podales ustawien kompilatora przy ktorych testowales programy.

 

Pozdrawiam, Toster

 

W sumie chcialbym zweryfikowac te wyniki ale tak jak napisalem nie mam czasu (faken) wiec jakby cie to zainteresowalo moze bys zrobil te testy porownawcze + moze jeszcze jakies ?

Nie rozumiem, potrzeba Ci aż tylu dowodów by zrozumieć, że C++ jest lepszy :P ??

Link do komentarza
Udostępnij na innych stronach

Test wydajnościowy był kiedyś na warsztacie co do operacji zmiennoprzecinkowych wykorzystywanych w grach :P, no ale teraz go nie widzę x_X (pewnie jakiś zazdrosny C++owiec go skasował ;). Na moim komputerze Delphi 7 lekko (leciutko) wyprzedzało VC++ 6, a następne wersje Delphi jeszcze bardziej (ale niekoniecznie przez optymalizację na operacjach zmiennoprzecinkowych, bo w D2006 jest taki mały trik :P).

 

Zresztą można być pewnym, że w Delphi postawiono na wydajność :). Wystarczy porównać Delphi z FPC :o...

 

Szczerze mówiąc wątpię by takie testy coś wykazały (no może jeśli porównać VC++2005 z Delphi 3 xD), teraz to nie ma większego znaczenia. x86 jest już tak długo na rynku więc firmy dokonały tak wielu optymalizacji że za wiele się już nie wymyśli. Porównywać będzie można Delphi vs. C++ na architekturze x64

 

Znam lepszy argument za C++ :D...

soon Delphi will be only for veterans and finally we all will die at the end…

delphi.dathox.com - nowinki z świata Delphi/Pascala

only programmers and drug dealers call their customers "users"

 

Oto cisza przed burzą, Chwile się dłużą.Z gór schodzi dużo chmur ku podnóżom.Ptaki milaczą, drogi suche jak wiór się kurzą, Ptaki milczą a drogi się kurzą.

Link do komentarza
Udostępnij na innych stronach

Myślę, że by coś wykazały - ignorancje autora. Bo jak ktoś pisze, że odpowiednikiem x+=5 w Pascalu/Delphi jest x := x+5, a programuje podobno 5 lat w tych językach to jak to możliwe że o Inc(x,5) nie słyszał?

Dlatego warto zobaczyć jego testy, zwłaszcza quciksort, gdzie piszę w Partition:

reapeat i:=i+1; until A > dzielnik; a nie reapeat Inc(i); until A > dzielnik;

A przecież Inc i Dec to kluczowe operacje, która właściwie w każdym z jego testów powinny się pokazać.

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Po pierwsze witam wszystkich ;) Tak sobie szukalem w necie juz nie pamietam czego i zawedrowalem na Wasze forum;) Dorzuce swoje trzy grosze odnosnie C++ vs Object Pascal. Celowo napisalem to w ten sposob, poniewaz piszac "C++" raczej nikt nie podaje kompilatora, ktory byl uzywany a ma to diametralne znaczenie. Oczywiscie podjac ogolnikowo C++ jest to dosc wygodne, gdyz jeden kompilator moze byc szybszy w tym, drugi w tamtym a sumujac wyjdzie ze jest to C++ ;)

 

Zobaczcie sobie na te testy. W ich przypadku mozemy chyba wykluczyc jakakolwiek stronniczosc. Co prawda pominiete sa tutaj kompilatory komercyjne ale daje to i tak duzy poglad na sprawe.

 

testy

 

Trzeba zauwazyc ze jesli chodzi o FPC to pole do dalszej optymalizacji kompilatora zarowno jesli chodzi o wielkosc generowanego kodu wynikowego jak i szybkosc tego kodu jest olbrzymie. Jesli chodzi o kompilatory C to sprawa ma sie tutaj gorzej bo sa one rozwijane nieprzerwanie od lat. Wydaje mi sie, ze ta roznica bedzie rosnac o ile oczywiscie chlopaki z FPC nie zaprzestana rozwijac kompilatora.

 

CYTAT(HNB @ śro, 04 lip 2007 - 15:12) <{POST_SNAPBACK}>Zresztą można być pewnym, że w Delphi postawiono na wydajność :). Wystarczy porównać Delphi z FPC :o...

 

Czyli uwazasz ze Delphi jest szybsze niz FPC? Ja w to szczerze powatpiewam, kompilator Delphi nie byl ruszany od lat nie liczac updatow grupy FastCode.

 

Cytat @Jason

HNB:Ile razy potrzebna Ci była obsługa baz danych w Delphi, którą się tak szczycisz ?? Firmy, które naprawdę tego potrzebują są w stanie zrobić to w normalny sposób, bez tych zabawek z Delphi tongue.gif

Nie bardzo rozumiem co masz na mysli mowiac "normalny" sposob. Tak sie sklada, ze pracuje w firmie gdzie pisze aplikacje bazodanowe na codzien. Uzywajac Delphi moge podpiac sie do bazy wyswietlic wyniki jakiegos query i operowac na nich i 'kodowanie' takiej aplikacji zajmie mi gdzies 30 sekund liczac z wpisywaniem ConnectionStringa i prostego query. W Visualu mozesz zrobic oczywiscie to samo. Roznica jest taka ze w Delphi bez kompilacji swojej aplikacji widzisz dane wyciagniete z danej bazy w designtime. Jest to fajny bajer ale mozna bez tego zyc;) Wydaje mi sie, ze Delphi nie ma juz znaczniej przewagi nad Visualem jesli chodzi o bazy danych.

 

Reasumujac Obiekt Pascal od C++ wolniejszy napewno nie jest. Czy jest szybszy sadze, ze tez nie;)

Niestety uprzedzenie do Object Pascala jest szerzone wsrod pseudoekspertow i na to nic sie poradzic nie da.

Sam moge przytoczyc pare historyjek ze studiow:

@Moj_Kumpel: "C jest szybsze od Pascala."

@Ja: "Skad wiesz?"

@Moj_Kumpel: "Bo mi tak kolega powiedzial."

:blink:

 

Mozna porownywac kompilatory w nieskonczonosc szukajac za i przeciw ale jest cos w czym zaden kompilator C nigdy nie dorowna kompilatorowi Pascala: szybkosc kompilacji. O ile w malych programach tego nie widac to w duzych roznica jest kilkudziesieciokrotna.

 

Pozdrawiam,

 

Wodzu

Link do komentarza
Udostępnij na innych stronach

No właśnie problem jest w tym, że facet mógł w Delphi strasznie narobić źle.

Po za tym też nie wiem jak można powiedzieć, że kompilator Delphi się nie rozwija, zapewne for-in same się dodały, tak samo jak przeładowania operatorów oraz całkowicie inne podejście do rekordów.

Ja naliczyłem się 35 błędów i dziwnych sformułować autora i wypisania z omówieniem zajęło mi 3,5 strony A4.

Baza tysięcy lotnisk: http://airportsbase.com

Link do komentarza
Udostępnij na innych stronach

Po za tym też nie wiem jak można powiedzieć, że kompilator Delphi się nie rozwija, zapewne for-in same się dodały, tak samo jak przeładowania operatorów oraz całkowicie inne podejście do rekordów.

Chodzilo mi o optymalizacje kompilatora pod wzgledem szybkosci kodu wynikowego a nie o rozwijanie samego jezyka.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...