WinAPI unter Windows11 immer noch die schnellste Variante?
-
Hallo, ist die WinAPI eigentlich immer noch die schnellste Schnittstelle zum System, oder ist die nur noch aus Kompatibilitätsgründen da und alles wird jetzt über .NET und WFP usw geregelt?
-
Die schnellste Schnittstelle sind theoretisch syscalls. Praktisch kann man die auf Windows aber kaum sinnvoll direkt verwenden, z.B. schonmal weil sich die syscall IDs von Windows Version zu Windows Version unterscheiden.
Die schnellste halbwegs praktikable Variante ist die "Native API" (NTDLL). Dabei muss man aber auch einiges beachten. Z.B. verwendet die Native API komplett andere Pfade als die WinAPI.
Die schnellste "normale" API ist dann die WinAPI (KERNEL32, USER32 etc.).
Was .NET angeht: .NET würde ich nicht als Schnittstelle bezeichnen. Eher als Runtime oder VM. Wenn du das .NET Framework meinst: das ist eine weitere Abstraktionsebene über WinAPI und damit natürlich wieder eine Spur langsamer.
-
Vielen Dank, dann scheint ja die WinAPI wirklich noch aktuell zu sein und nicht nur emuliert damit die Kompatibilität gewahrt bleibt.
-
Die WinAPI ist gerade für einfache grafische Beispiele gut geeignet. Beim Auffinden und Verstehen der passenden Funktionen, Header und Libraries steht chatGPT-4o allzeit hilfreich bereit. Hier ist ein typisches Beispiel: Ich wollte eine experimentelle Basis schaffen für "Neural Network with Genetic Algorithms". Für das gewählte Thema "Käfer suchen Futter" ist WinAPI gut geeignet, weil man das Hauptprogramm in eine Datei Main.cpp packen kann und im Wesentlichen windows.h genügt.
https://www.henkessoft.de/C++/WinAPI/WinAPI_GDI/NN_und_GA.htm
-
Wen man es mit Linux und GUI vergleicht, ist auch dort die xlib das schnellste. Unter X11 wird ein Fenster immer mit XCreateWindows erzeugt. Auch GTK oder SDL verwendet zuunterst XCreateWindow.