posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

Una sessione unmanaged

Una sessione tutta unmanaged sui tips&tricks per aumentare le performance delle applicazioni Win32. Nulla di nuovo sotto il sole, si parla sempre dei soliti parametri.

Viene sottolineato quanto le CPU non siano il collo di bottiglia ma piuttosto la latenza della wan, dei drives, della lan.

Si entra in modo un po' provocatorio nell'argomento dei page faults indicando come "lenti" i puntatori di memoria. Il relatore indica ad esempio quanto il ritardo del menu di Start in XP sia dovuto a dei page faults per una cattiva gestione dei dati del menu che andrebbero tenuti in cache.
La conseguenza è un teorema che ben noto e cioè che gli array sonop più performanti delle linked list (aka collections) visto che teoricamente ciascun elemento della lista potrebbe trovarsi in pagine di memoria differenti, scatenando così una notevole quantità di page faults.

Vengono poi evidenziati classici errori nelle UI come le assurde strategie per essere sicuri che la propria applicazione sia 'più on top di qualsiasi altra' ... finch'è un'altra applicazione non vuole fare la stessa cosa, con il rischio di andare in un loop infinito tra le due applicazioni che si scambiano il posto.

Poi seguono concetti classici, come quello di evitare il polling a favore della sospensione dei thread, oppure fare molta attenzione all'uso di memoria, specie se l'applicazione gira in terminal server: la memoria consumata ovviamente si moltiplica per il numero di istanze .

Si raccomanda poi di evitare l'uso di caratteristiche non supportate dall'hardware. Vista Beta 2 supporterà IWinSat per sapere cosa è disponibile (capabilities della effettiva velocità della cpu, del disco, etc. calcolate al primo boot oppure on demand).

In Vista viene tolto lo schema 'Large Font' (finalmente!) e il DWM emula 96dpi di default eseguendo uno stretch.
Windows Presentation Foundation è dpi-agnostico (dato che gestisce tutto in vettoriale) ma naturalmente le bitmap necessiteranno sempre di attenzione.

Print | posted on giovedì 15 settembre 2005 22:02 |

Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET