Einzelnen Beitrag anzeigen

mkinzler
(Moderator)

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

AW: Delphi vs. C# vs C++

  Alt 30. Jul 2015, 14:53
Diese Vermutung hatte ich. Wenn man aus 50000 5000 oder sogar 50 macht und sich an der Zeit nichts ändert, spricht es auch dafür.

C# (2015) benötigt sogar etwas weniger als Delphi (16,6 Sekunden)

VC++ (2015): 0 ms. Nach Abschalten der Optimierung sind es dann 103s

c#:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            int li = 0;
            int lj = 0;
            int st = System.Environment.TickCount;

            for (li = 0; li < 50000; li++)
            {
                for (lj = 0; lj < 1000000; lj++)
                {
                }
 
            }
            int et = System.Environment.TickCount - st;
            Console.WriteLine(et);
            Console.ReadLine();
        }
    }
}
Delphi:
Delphi-Quellcode:
program Test;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils, Windows;

  var li,lj:integer;
      st: Cardinal;
begin
  try
        li := 0;
        lj := 0;
        st := GetTickCount;
            for li:=0 to 50000 do
            begin
               for lj:=0 to 1000000 do
               begin

               end;
               {if (li mod 1000=0) then
              begin
                  WriteLn( li);
               end; }

            end;
        Writeln( IntToStr(GetTickCount - st));
        Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
c++:
Code:
#include "stdafx.h"
#include <iostream>
#include <windows.h>
using namespace std;
#pragma optimize( "", off )

int main() {
   int i, j, k;
   DWORD st = GetTickCount();

   for (i = 0; i < 50000; i++)
      for (j = 0; j < 1000000; j++)
      {
         
      }

   DWORD et = GetTickCount();

   cout << (et - st);
   cin >> i;
   return 0;
}
Markus Kinzler