Domanda

Come ho creato l'applicazione che è difficile a calcoli -> un sacco di lavoro da fare, non calcoli molto complessi -> ci vuole troppo tempo per lavorare fuori e il processo è solo al 45% della CPU. Posso in qualche modo massimizzare ?: andare al 90%?

È stato utile?

Soluzione

Se si dispone di una macchina dual core (che sto cercando di indovinare che fai), il massimo che poteva sperare di ottenere in un singolo thread sarebbe del 50% l'utilizzo della CPU.

Per ottenere l'utilizzo della CPU del 90%, è molto probabile che sia necessario infilare i vostri calcoli. Questo può essere molto semplice o molto difficile, a seconda della natura dell'algoritmo che si desidera infilare.

Se si riesce a spezzare la vostra working set in più gruppi, mi sento di raccomandare pensa di utilizzare il ThreadPool , o potenzialmente anche il Task Parallel Biblioteca , a seconda la vostra sincronizzazione per il rilascio.

Altri suggerimenti

Molto probabilmente si dispone di una CPU dual core, e se la vostra applicazione è a thread singolo, la CPU massima userà è del 50% (tutti di un core). Al fine di ottenere un migliore utilizzo, è necessario utilizzare più thread, ma questo significa anche capire un modo per rompere i vostri calcoli in pezzi in modo che possano essere lavorato per più di un core.

Controlla questo:

  1. Avete letto dal disco durante il calcolo? Se è così, provate a leggere i dati in memoria prima di calcoli.
  2. Si scrive i risultati su disco o su console, mentre il calcolo? In tal caso, provare a rinviare la scrittura fino a quando il calcolo è finita e quindi non la scrittura.
  3. Se si dispone di processore multicore, provare a creare un algoritmo multithread, se possibile.

Se v'è solo un semplice anello di fare i calcoli, quindi molto probabilmente il computer dispone di due core / processori. Una singola applicazione filettato caso migliore utilizzare il 50% della CPU.

È necessario più thread di utilizzare l'intera CPU su una macchina multi-core.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top