Il working set di un'applicazione viene tagliato quando Ŕ ridotto a icona la finestra di primo livello

Traduzione articoli Traduzione articoli
Identificativo articolo: 293215 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

In questa pagina

Sintomi

Quando Ŕ ridotto a icona finestra principale di un'applicazione tramite il comando Riduci a icona dal relativo menu di sistema o un clic sul relativo pulsante di riduzione a icona , il sistema operativo verrÓ ritagliare il working set per il processo. Questa operazione viene eseguita per liberare RAM per le applicazioni in primo piano. Come risultato di questa operazione di taglio, un processo potrebbe verificarsi prestazioni inferiori in modo significativo in quanto le pagine di memoria sono la non riuscite in RAM.

Informazioni

Se un'applicazione riduce la finestra di primo livello a livello di programmazione chiamando l'API ShowWindow() con il comando SW_MINIMIZE, working set del processo verrÓ ritagliato. Tuttavia, la working set verrÓ non essere tagliato quando la finestra Ŕ ridotta a livello di programmazione icona tramite l'utilizzo di ShowWindow() con il comando SW_SHOWMINIMIZED.

Il working set di un processo Ŕ l'insieme di pagine di memoria attualmente visibili al processo nella memoria RAM fisica. Accesso a questa memoria Ŕ molto rapido poichÚ le pagine sono residenti e disponibili per un'applicazione senza originare un errore di pagina.

Un processo pu˛ in modo esplicito ritagliare il proprio utilizzo insieme chiamando l'API SetProcessWorkingSetSize() durante il passaggio "-1" per i parametri di dwMinimumWorkingSetSize e il dwMaximumWorkingSetSize . Questo Ŕ essenzialmente come il sistema riduce il processo quando Ŕ ridotto a icona la finestra di primo livello. Ci˛ non significa che le pagine di memoria utilizzate dal processo vengono immediatamente eliminate dalla RAM. Infatti, queste pagine potrebbero rimanere residente per molto tempo. Sono semplicemente vengono contrassegnate in modo che il sistema pu˛ utilizzare per altri processi, se necessario. Questo Ŕ notevolmente pi¨ veloce in attesa di algoritmo di rimozione standard del sistema della.

Quando una finestra Ŕ ridotta a icona tramite il comando Riduci a icona dal relativo menu di sistema o il pulsante Riduci a icona , la finestra viene inviata un messaggio di WM_SYSCOMMAND con il comando SC_MINIMIZE. Se la routine di finestra passa questo messaggio alle routine di finestra predefinita del sistema dal chiamante DefWindowProc(), Ŕ necessario che la routine predefinita gestirÓ il messaggio di chiamata ShowWindow() con il comando SW_MINIMIZE. Come affermato in precedenza, in questo modo il processo working set per essere tagliato.

╚ possibile scrivere un'applicazione che pu˛ essere ridotta a icona senza working set tagliato. A tal fine, la procedura di finestra per la finestra di primo livello deve intercettare il messaggio WM_SYSCOMMAND e rispondere al comando SC_MINIMIZE dal chiamante ShowWindow() direttamente con il comando SW_SHOWMINIMIZED. Non dovrÓ passare il comando SC_MINIMIZE a DefWindowProc().

Codice di esempio

Il codice riportato di seguito viene illustrato come scrivere una routine finestra che consente di intercetta il messaggio WM_SYSCOMMAND per ignorare la routine di finestra predefinita e impedire che il processo working set viene tagliato:
LRESULT CALLBACK WndProc (HWND hWnd, UINT iMsg, WPARAM wParam, 
      LPARAM lParam) {

   switch (iMsg) {

      case WM_SYSCOMMAND:
         if (wParam == SC_MINIMIZE) {

            // programmatically minimize the window
            ShowWindow(hWnd, SW_SHOWMINIMIZED);

            // do not pass the minimize command on to the system's
            // default window procedure
            return 0;
         }

         // allow other system commands to be passed on to the
         // default window procedure
         break; 

      // handle other window messages here...
      case WM_WHATEVER:
         break;
   }

   return DefWindowProc(hWnd, iMsg, wParam, lParam);
}
				

ProprietÓ

Identificativo articolo: 293215 - Ultima modifica: martedý 21 novembre 2006 - Revisione: 5.1
Le informazioni in questo articolo si applicano a:
  • Microsoft Win32 Application Programming Interfaceáalle seguenti piattaforme
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Chiavi:á
kbmt kbapi kbkernbase kbmemory kbprb KB293215 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 293215
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com