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

1

09.02.2007, 13:37

Assembler in C#

Hallo,

:?: wie kann man in einem C#-Projekt mit VS 05 einige Funktionen die schnell laufen müssen
in Assembler programmieren?

:?: Wenn das nicht geht: gibt es eine andere allgemeine Methode (ist vielleicht mit VisualBasic
erzeugter ZwischenCode schneller)?

Dank und Gruß
Benutzername

2

09.02.2007, 13:51

Kannst du beides vergessen. Jeglicher Code wird in .Net Bytecode kompilert. Ähnlich wie bei Java.

Du kannst höchstens den "schnellen" Code in C++ (embedded Assebbler) schreiben, eine DLL kompilieren und diese in C# aufrufen.

Allerdings erzeugst du damit "unsicheren" Code.

3

09.02.2007, 14:03

:!: In C++ kann man soetwas soweit ich weiß machen - Inline Assembler _asm blub -

:idea: Dann könnte man ja vielleicht mit C++ eine dll anlegen in der man Inline Assembler
benutzt und diese dann in einem C#-Projekt verwenden!?

ChrisJ

Alter Hase

Beiträge: 487

Wohnort: Schweich

Beruf: Schüler

  • Private Nachricht senden

4

09.02.2007, 14:33

Zitat von »"chriss"«

Allerdings erzeugst du damit "unsicheren" Code.

5

09.02.2007, 14:37

Zitat von »"Benutzername"«

:!: In C++ kann man soetwas soweit ich weiß machen - Inline Assembler _asm blub -


Ja genau das meinte ich mit embedded.

Also es geht wie du dir das vorstellst aber ich würde dir davon abraten.

6

09.02.2007, 14:54

Weil?

7

09.02.2007, 14:59

:?: Gibt es denn sonst ein generelles Konzept, um Methoden zu beschleunigen?

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

8

09.02.2007, 15:28

wenn dir die Sprache zu langsam ist, liegt das an ihrer Konstruktion und an ihrem Ziel. C# hat nicht das Ziel schnell auf irgendwelchen Systemen zu laufen, genauso wie Java.

Wenn du etwas hardwarenaheres willst, wo du auch ordentlich optimieren kannst, solltest du hardwarenahe (relativ gesehen) Programmiersprachen nutzen. Wie C, Cpp, Fortran, ASM.

Gerde bei C und Cpp tust du aber meist mit inline Assembler nichts gutes, da der Compiler an den Stellen den Code nicht optimieren kann.


Meist liegen langsame Programme aber hauptsächlich an dem Programmierer. Sogar mit Java ist 3D mgl.

9

09.02.2007, 16:18

Also, so riesige Zeitvorteile bringt Assemblercode in einem C/C++ Code nicht. Vielleicht 1-2 ms.
Sprachen: C/C++, C#, Assembler (16-Bit), QuickBASIC

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

10

09.02.2007, 16:31

Eigentlich bringt ASM gar keine Vorteile in einem C Programm, da der Compiler eben diesen code nicht optimieren kann.

Es ist aber zu pauschal zu sagen " es wird nie was bringen " :)

Werbeanzeige