Ho una DLL win32 e due applicazioni che utilizzano la stessa dll. Uno è scritto usando c nello spazio non gestito e l'altro è l'applicazione .net che effettua la chiamata al codice non gestito usando Pinvokes.Prestazioni di richiamo del codice non gestito dal codice gestito
A volte le prestazioni dell'applicazione .net sono migliori dell'applicazione c. Tecnicamente parlando invocando il codice non gestito da .net si verifica un sovraccarico delle prestazioni, ma non in questo caso.
Ho controllato il riferimento a msdn e sembra esserci una sorta di pre-elaborazione che avviene prima della chiamata effettiva. Durante il collegamento viene caricata la DLL.
Voglio capire in quali scenari l'applicazione .NET supera le prestazioni?
come si misura la prestazione delle due applicazioni e tutte le altre logiche sono esattamente le stesse per le due? –
Generalmente, le chiamate native devono essere più veloci, guarda questo: http://www.codeproject.com/KB/dotnet/pinvokeperformance.aspx Sei sicuro che le tue misure siano corrette? –
@AvadaKedavra - Ho misurato una particolare chiamata di metodo utilizzando rispettivamente cronometro e tempo per .net e c. – sundar