DevExperience

.Net Framework, Embedded Systems & Design Patterns Paolo Patierno's Blog

Recent Posts

Apps & Articles

Applicazioni

Pubblicazioni

Tags

Archives

Windows Embedded CE 6.0

Building Embedded Devices using Windows Embedded CE 6.0 R2

My Profiles

 

My Embedded101 Blog

Sto leggendo...

Open Source Hardware

Windows Embedded

.Net Micro Framework

.Net Framework & CLR

Email Notifications

Codice Nativo vs Gestito : performance

Affrontando un problema lavorativo riguardo le perfomance grafiche su un target device con processore ARM e Windows CE 6.0 R3 e facendo delle ricerche di approfondimento in rete, mi sono imbattuto in un interessantissimo articolo di Chris Tacke dell’OpenNETCF Communty intitolato “Native vs. Managed Code : GDI Performance”.

L’articolo, attraverso un’applicazione di test, dimostra quanto il codice nativo non possa essere considerato in assoluto molto più veloce del codice gestito ma soltanto per una percentuale relativa che però può talvolta variare da piattaforma a piattaforma. In particolare, il test viene eseguito utilizzando le GDI di Windows.

Un ulteriore interessante risultato è che l’utilizzo di metodi del .Net Compact Framework che fungono da wrapper di corrispondenti metodi nativi (vedi ad esempio Graphics.FillRectangle che è wrapper dell’API FillRect) riducono le performance rispetto all’invocazione diretta delle API di sistema attraverso le P/Invoke. E’ ovvio che il wrapper al suo interno eseguirà sempre una P/Invoke ma aggiunge un carico di lavoro in più, probabilmente legato a dei check che vengono eseguiti prima della chiamata nativa (vedi anche il marshalling dei parametri).

Posted: 23 Dec 2011 13:10 da Paolo | con no comments
Inserito sotto: , , , , ,