Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

31

20.02.2007, 15:19

das ist mir alles klar. die frage war aber, ob C# prinzipiell ohne .net nicht funktionieren würde. und ich denke nicht, dass das .net framework bestandteil der sprache C# ist, es also durchaus möglich wäre z.b. einen native compiler für C# zu entwickeln, zumal die sprache selber afaik public ist.

das C# dazu gedacht ist mit .net anwendungen zu erstellen steht außer frage.

deswegen meine antwort: jain...

32

20.02.2007, 16:10

Wenn du das so siehst würde es theoretisch mit jeder Sprache funktionieren.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

33

20.02.2007, 16:18

ja, mit fast jeder.

ich hab auch nicht behauptet, dass es wirklich möglich ist:

Zitat von »"dot"«

praktisch gesehen kann man, denke ich, sagen: nein.

34

20.02.2007, 18:51

Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

35

21.02.2007, 09:35

Hab gestern zwei identische Programme verglichen, die einfach nur sehr, sehr viele und große Zahlen multiplizieren sollten.
Eimal in C# und einmal in C++.

Ich staune immer noch, was für ein riesiger Unterschied das ist!

Könnt ihr das auch machen und dann sagen, ob ich mich vielleicht irgendwo geirrt hab oder ob es wirklich so schlimm um die Geschwindigkeit von C# aussieht.

C# - 0.9 Sekunden
C++ - 7.0 Sekunden (Debug-Modus)
C++ - 0.0000002 Sekunden (Release-Modus)

Mit freundlichen Grüßen,
WhiteMike

riCo

Treue Seele

Beiträge: 165

Beruf: Student

  • Private Nachricht senden

36

21.02.2007, 10:04

Mach das mal noch mit Java. Da kannste dir bestimmt noch nen Kaffee holen.. :D

edit
------
Wie schon gesagt.. C# würde ich für Oberflächenzeugs o.ä. nehmen. Im Umgang(Parsen) mit XML ist C# beispielsweise rasend schnell..
Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.

Steven77

Alter Hase

Beiträge: 515

Wohnort: Münster - Gievenbeach

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

37

21.02.2007, 10:13

WhiteMike, zeig mal den Code.
Es kann sein, dass in der C++-Release-Version gar nichts gerechnet wird, weil der Compiler die Rechnungen, dessen Ergebnisse sowieso verworfen werden, erst gar nicht mit im Code aufnimmt.
Man muss natürlich entsprechende Programme testen, dessen Laufzeiten signifikant vergleichbar sind. Je nach dem, was man denn überhaupt testen will.
Kommen Sie nie mit einem Schwert zu einer Schießerei.

38

21.02.2007, 16:54

Also mir kommen die Zahlen etwas extrem vor.
Steven77 hat recht: Schreib mal den SC rein, dann können wir das Programm auch ausprobieren und unsere Ergebnisse vergleichen.

Ich hatte mal so einen Test gemacht. Man hat fast keinen Unterschied gemerkt. Wie gesagt: So schnelle Augen hat man nicht.
Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

39

21.02.2007, 20:58

Bin erst grad nach Hause gekommen, schau aber zu, dass ich das heute noch reinstelle.
Mir kommen die Zahlen ja auch extrem vor. Ich wäre wirklich erleichtert, wenn man das Problem finden könnte!
Vielleicht hab ich auch falsche Einstellungen in der IDE.

Mit freundlichen Grüßen,
WhiteMike

WhiteMike

Alter Hase

Beiträge: 507

Wohnort: Ulm

Beruf: Schüler

  • Private Nachricht senden

40

21.02.2007, 21:11

C++ - Code

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Console.cpp : Defines the entry point for the console application.

//


#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>

const int Times = 10;

int main( void )
{
double TimePassed = 0.0f; 
__int64 llFrequency; 
__int64 llStartTime; 
__int64 llEndTime;

// get Frequency noch vor einer Zeitmessung! 

QueryPerformanceFrequency((LARGE_INTEGER*) &llFrequency);   
  
for(int i = 0; i<Times; i++)
{
    // Startzeitpunkt messen 

    QueryPerformanceCounter((LARGE_INTEGER*)(&llStartTime)); 

    for (int i = 0; i < 2000000000; i++)
     {
        int j = i * i;
     }
      
    // Endzeitpunkt messen 

    QueryPerformanceCounter((LARGE_INTEGER*)(&llEndTime));

    // Zeit die vergangen ist... 

    TimePassed = ((double)(llEndTime - llStartTime)) / ((double)llFrequency);
   
    printf("benötigte Zeit: %0.16f\n", (double)TimePassed);
}
}



C# - Code
MyTimer ist eine selbstprogrammierte Klasse von mir, die einfach nur zum Umgang mit DateTime- und TimeSpan-Objekten ist.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
using System;
using System.Collections.Generic;
using System.Text;

namespace Test
{
    class Program
    {
        const int Times = 10;

        static void Main(string[] args)
        {
            MyTimer Timer = new MyTimer();
          
            for (int x = 0; x<Times; x++)
            {
                Timer.Start();
                
                for (int i = 0; i < 2000000000; i++)
                {
                    int j = i * i;
                }
                Timer.Stop();
                Console.WriteLine("benötigte Zeit: {0}", Timer.Result.Milliseconds);
            }
            Console.ReadLine();
        }   
    }
}


Ich hoffe wirklich, dass der Fehler gefunden wird.

Mit freundlichen Grüßen,
WhiteMike

Werbeanzeige