Ottimizzazione della memoria sui dispositivi mobile

Negli ultimi mesi ho dedicato del tempo allo sviluppo mobile (vedi qui e qui) creando un?applicazione discreta, ma aggiungendo nuove features sono nati i primi problemi di performance.

Il problema principale era l?utilizzo eccessivo della Ram ma per poter risolverlo dovevo capire cosa la utilizza, quando la Garbage Collection entra in funzione, quali sono le operazioni ripetute, ecc.

 

Beh fortunatamente nel frattempo è uscito il Compact Framework 2.0 Service Pack 1 in cui tra le varie Fix sono state aggiunte delle Features (compreso il tanto desiterato attributo serializzable era ora!!! Per un elenco completo delle novità leggete qui ) e dei tool come il .NET Compact Framework Remote Performance Monitor.

Ora l'utility ci permette di vedere in tempo reale una miriade di informazioni sulla nostra applicazione e di capire dove possiamo ottimizzare il codice per ridurre al minimo l?utilizzo della ram.

Riporto di seguito i passaggi per la corretta configurazione dell tool:

 

[Configurazione]

Il setup è pittusto semplice, una volta installato il Compact Framework 2.0 Service Pack 1 basta andare dentro C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\bin qui trovate un file NetCFRPM.exe che che si occuperà di analizzare le informazioni provenienti dal palmare.

Ora è necessario che il nostro dispositivo ci invii le informazioni necessarie alla nostra utiltity e lo facciamo andando dentro C:\Program Files\Microsoft.NET\SDK\CompactFramework\v2.0\WindowsCE\wce400\armv4 e copiando netcflaunch.exe, netcfrtl.dll nella cartella windows del nostro Pocket PC.

 

[Solo per utenti Windows Mobile 5]

Per chi non possiede un dispositivo con Windows Mobile 5 può saltare direttamente al paragrafo ?Monitorizzazione dell?applicazione? mentre per quelli come me che hanno un device WM5 devo creare un file xml con questo contenuto:

 

<wap-provisioningdoc>
<characteristic type="Metabase">
<characteristic type="RAPI\Windows\netcfrtl.dll\*">
<parm name="rw-access" value="3" />
<parm name="access-role" value="152" />
<!-- 152 maps to "CARRIER_TPS | USER_AUTH | MANAGER"-->
</characteristic>
</characteristic>
</wap-provisioningdoc>

 

 

Una volta salvato il file XML non ci resta che eseguire rapiconfig /p rpmprov.xml.
Il comando rapidconfig lo troviamo in C:\Program Files\Microsoft Visual Studio 8\SmartDevices\SDK\SDKTools\.

 

[Monitorizzazione dell?applicazione]

Eseguiamo NetCFRPM.exe e una volta caricata l?UI (detto così sembra che ci vuole tempo ma in realtà ci mette un sec :-)) se il nostro device è collegato tramite activesync lo dovremmo trovare nella Combo "Device", altrimenti possiamo mettere l?indirizzo di rete.

Nel campo ?Application? mettiamo il percorso dove si trova la nostra applicazione nel pocket pc "\Scheda di memoria\Programmi\ProgrammaTest\Test.exe".

 

Ora da dentro il pocket pc eseguiamo netcflaunch.exe che abbiamo precedentemente copiato nella cartella windows del device.

Premiamo Connect nel tool di monitorizzazione e la nostra applicazione verrà eseguita sul device e tutte le informazioni ci appariranno nel nostro PC come mostra l?immagine seguente.

 

 

Giochiamo un po? con la nostra applicazione in modo da capire quali sono le form e le operazioni più onerose in modo da poterle ottimizzare.

È inoltre possibile collegare il nostro applicativo al Performance di windows (Start -> Control Panel -> Administrative Tools -> Performance), ma per questo vi rimando al link dove

Nella stessa categoria

Commenti

Per inserire un commento, devi registrarti alla nostra community.

© 1998-2008 - imperugo - Il blog di Ugo Lattanzi

TagCloud
BLOG INFO
  • Post: 63
  • Commenti: 40
  • TrackBacks: 10
  • Feed blog e contenuti tecnici: RSS
  • Feed blog: RSS Atom OPML
CATEGORIE
I PIÙ LETTI DEL MESE
IN EVIDENZA