View Full Version : [visual c++] come impostare l'utilizzo del processore?
leox@mitoalfaromeo
27-02-2007, 10:44
arieccome... col progetto della tesi finito e con 10 giorni per fare millemila prove e completare e stampare la tesi!!!!!aiutooo!!!
bando alle ciance... devo fare un po' di simulazioni col programma che ho scritto che, oltre ad arrivare a ciucciare 2 giga di memoria nonostante sia stato attento a mettere tutti i "delete" che ci volevano, mi utilizza il processore al 50%...
già che non ho molto tempo e che una simulazione impiega un'ora, mi domandavo se si poteva impostare qualcosa per farlo andare magari all'80%...
leox@mitoalfaromeo
27-02-2007, 15:09
:help:
leox@mitoalfaromeo
28-02-2007, 11:48
nessuno sa nulla? :help:
La questione principale è che l'occupazione della CPU da parte di un applicativo dipende da molti fattori: innanzitutto da cosa (e come) fa il programma poi dalle caratteristiche hardware del sistema e dallo stato del sistema in quel momento (altre applicazioni, ecc...).
Quindi non sarebbe affatto semplice fare in modo che un applicativo usi una precisa e determinata percentuale x del processore.
Bisogna innanzitutto vedere cosa fa il tuo programma ... come è fatto il codice.
leox@mitoalfaromeo
01-03-2007, 00:15
La questione principale è che l'occupazione della CPU da parte di un applicativo dipende da molti fattori: innanzitutto da cosa (e come) fa il programma poi dalle caratteristiche hardware del sistema e dallo stato del sistema in quel momento (altre applicazioni, ecc...).
Quindi non sarebbe affatto semplice fare in modo che un applicativo usi una precisa e determinata percentuale x del processore.
Bisogna innanzitutto vedere cosa fa il tuo programma ... come è fatto il codice.
no ma come dicevo.. se usasse il 56% o il 45% o il 37% me la metterei via senza problemi... è proprio il fatto che si fermi a 50 tondo che mi fa pensare che ci sia qualche impostazione che esplicitamente lo limita...
in java dev'esserci qualcosa di simile, magari anche in c++
hai provato su diverse macchine/cpu? rimane su tutte al 50%?
la macchina in sign se non sbaglio è un dual core, magari ti segna 50% per questo?
leox@mitoalfaromeo
01-03-2007, 10:14
hai provato su diverse macchine/cpu? rimane su tutte al 50%?
la macchina in sign se non sbaglio è un dual core, magari ti segna 50% per questo?
uguale anche sul p4 2.8...
^TiGeRShArK^
01-03-2007, 20:05
uguale anche sul p4 2.8...
hai un p4 con HT abilitato ovviamente.
Cmq ke ti occupi 2 GB è sicuramente sintomo di un memory leak.
Se disabiliti HT per far sfruttare il processore al 100% probabilmente il tuo prog andrà ancora + piano dato che in realtà ha due processori logici e non fisici e tu cmq stai sfruttando completamente il processore fisico lasciando eventualmente qualke risorsa per altri thread sul processore logico.
Per farlo andare + veloce e sfruttare il 100% del processore dovresti rendere il tuo programma multi-threaded e farlo girare su due thread.
In quel caso però potresti avere un incremento prestazionale di circa il 10% a costo di un notevolissimo sbattimento, e data anke la questione del memory leak, dubito riusciresti a farlo funzionare correttamente dato ke i bug in multi-threading sono estremamente subdoli e difficili da tracciare.
Quindi in definitiva.. non ti preoccupare che il tuo programma sta già sfruttando il processore al max delle sue possibilità e va bene così :p
(certo magari investiga un pò sul memory leak xkè 2 GB di memoria occupata non sono una cosa tanto bella da vedere :mbe: e sicuramente ha un impatto sulle prestazioni del tuo programma)
leox@mitoalfaromeo
01-03-2007, 21:16
hai un p4 con HT abilitato ovviamente.
Cmq ke ti occupi 2 GB è sicuramente sintomo di un memory leak.
Se disabiliti HT per far sfruttare il processore al 100% probabilmente il tuo prog andrà ancora + piano dato che in realtà ha due processori logici e non fisici e tu cmq stai sfruttando completamente il processore fisico lasciando eventualmente qualke risorsa per altri thread sul processore logico.
Per farlo andare + veloce e sfruttare il 100% del processore dovresti rendere il tuo programma multi-threaded e farlo girare su due thread.
In quel caso però potresti avere un incremento prestazionale di circa il 10% a costo di un notevolissimo sbattimento, e data anke la questione del memory leak, dubito riusciresti a farlo funzionare correttamente dato ke i bug in multi-threading sono estremamente subdoli e difficili da tracciare.
Quindi in definitiva.. non ti preoccupare che il tuo programma sta già sfruttando il processore al max delle sue possibilità e va bene così :p
(certo magari investiga un pò sul memory leak xkè 2 GB di memoria occupata non sono una cosa tanto bella da vedere :mbe: e sicuramente ha un impatto sulle prestazioni del tuo programma)
infatti c'ho perso un pomeriggio oggi alla ricerca dei memory leaks... ho controllato ogni singola new e c'ho messo la sua delete.. ma niente.. non cambia nulla...
il punto è che sto coso ripete N esperimenti di alcuni algoritmi su alcune istanze... questi esperimenti sono del tutto indipendenti (salvo che è il main unico a regolarne la concatenazione), quindi posto anche che usi 30 mega per farne uno, poi dovrebbe disallocare tutto e ricominciare da capo.. invece non disalloca una sega! accumula e accumula... dev'essere un problema di ereditarietà dei distruttori... ma valli a piglià tu...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.