Co jest szybsze? Delphi czy Visual C++ ?

0

Mam takie programistyczne pytanie, a w zasadzie problem:

Chcialbym napisac grę 3D w Direct3D.
Na codzień używam do tworzenia programów kompilatora Delphi, ponieważ jest dla mnie wygodny i łatwy, ale znam tez doskonale Visual C++ i bardzo często spotykam się z opinią, że najkorzystniej napisać jest gry w Visual C++.

Tymczasem:

Chciałem zrobić drobny test, napisałem dwa programy:

Jeden w C++:

#include <iostream>
#include <math.h>
#include <windows.h>

main(void)
{	
 int czas_old, czas_new, I;
 float wartosc;
 wartosc = 0;
 czas_old = GetTickCount();
 I = 0;
 while (I < 20000000)
 {
  I++;
  wartosc = sin(I);
 }
 czas_new = GetTickCount();
 std::cout << czas_new - czas_old << std::endl;
 std::cin >> I;
 return 0;
}

I jego odpowiednik w Delphi:

program Project_01;

{$APPTYPE CONSOLE}

uses
 windows;

var
 czas_new, czas_old, I: integer;
 wartosc: double;

begin
 i := 0;
 wartosc := 0;
 czas_old := gettickcount;
 while I < 20000000 do
 begin
  inc(I);
  wartosc := sin(I);
 end;
 czas_new := gettickcount;
 writeln(czas_new - czas_old);
 readln(I);
end.

I czas wykonania petli "while" w C++ wynosi na moim procesorze ok. 2140 milisekund, zas ta sama petla stworzona w Delphi wykonuje sie w ok. 1750 milisekund.
Roznica nie jest w interpretacji funkcji Sinus, bo wystarczy zamiast niej zrobic jakies proste obliczenia, albo chociaz dodac do Wartosci 1 i efekt bedzie podobny - Delphi szybciej wykona wszelkie obliczenia...
Dlaczego wiec tworzy sie gry w Visual C++ gdzie obliczen jest cale mnostwo i liczy sie tam kazda "wolna" milisekunda?

Jak mam to zinterpetowac?
W jakim jezyku mam rozpoczac pisanie gry?

0

Co do pisania gier to polecam raczej C++ lecz widzialem jakie cuda wychodza napisane w Delphi :) czyli kwestia gustu a o gustach sie nie ... ;P

Co do Twoich obliczen to mam nadzieje ze wziales pod uwage np. obciazenie CPU lub ilos programow dzialajacych w tle ze wszystkie testy byly robione pod tym samym ;)

0

Ja mam chyba trafną odpowiedź: bo wszystkie biblioteki programistyczne w stylu DirectX są najpierw pisane w C/C++ bo w tym napisano Windows, a swoją drogą Visual C++ jest Microsoftu tak samo jako DirectX. Poza tym DirectX jest przygotowany pod Visual C++ lub C#. Skąd to wiadomo?

Jest taki słynny problem przy DX Managed (.NET). Jak chcesz stworzyć światło i zdefiniować jego typ, to piszesz (light.Type=typ_swiatla), ale w Delphi nie da się tego zrobić, bo użyte w bibliotekach Managed DX słowo Type jest kluczowym dla Pascal/Delphi i nie da się tego w Delphi .NET skompilować.

A wydajność tak na prawdę zależy od optymalizatora kodu i jego ustawień. Stopień optymalizacji można zmienić w ustawieniach projektu. W Delphi to kwestia optymalizować czy nie; w Visual C++ to kwestia, którą z dziesiątek opcji optymalizacji włączyć lub nie. Włącz wszystkie, które możesz i porównaj wynik.. tylko nie przejmij się, jak będziesz niemile zaskoczony rezultatem Delphi.

0

Jeżeli chcesz pisać gry to proponuję środowisko VISUAL STUDIO PROFESSIONAL.
Gry pisze się w OpenGL, choć jak ktoś nie zna bardzo dobrze języka C i C++, oraz bardzo dobrze teorii macierzy i podstaw fizyki takich jak dynamika, optyka, itd nie napisze nic porządnego. Pisanie gier to wpier matma, fiza a na koniec programowanie. OpenGL jest dość specyficzny. Powodzenia w pisaniu gier :)

0

Po co dajesz to samo pytanie do kilku dzialow :>
Rozumiem ze chcesz miec opinie ludzi piszacych w C / Delphi ale ... [diabel]

Sorki jak kogos wpienilem tym postem ;P

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