Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Motorola razr fold, dalla conchiglia al formato a libro. La recensione
Abbiamo provato Motorola razr fold, il pieghevole a libro con display interno LTPO da 8,09 pollici, Snapdragon 8 Gen 5 e batteria da 6000 mAh in 243 grammi. Pennino e custodia sopno già nella confezione, per un foldable che si caratterizza per il pannello luminoso, l'autonomia ottima per la categoria e le fotocamere coerenti e ben sfruttabili. Il listino è di 1999 euro, ma in vendita si trova già a molto meno
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente
Google Pixel Watch 5 ha affinato una formula già convincente con hardware più veloce, Gemini offline e nuovi strumenti per sport e benessere. Abbiamo provato la versione LTE da 41 mm, comoda anche di notte e ben proporzionata sui polsi piccoli. Il design resta un punto di forza, ma l'autonomia premia ancora il 45 mm e alcune funzioni AI non sono disponibili in Italia: ecco che cosa cambia rispetto a Watch 4 e quale formato conviene scegliere oggi
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo
Politica, accademia e industria a confronto su mercato unico, sicurezza e competitività. Nei laboratori di Vimercate, Nokia ha mostrato le nuove generazioni di chip ottici e i test che ogni prodotto deve superare prima di arrivare sul mercato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-04-2008, 17:11   #1
Radeon89
Senior Member
 
L'Avatar di Radeon89
 
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
[C#]Come valutare il n° di fotogrammi al secondo di una scena DirectX fatta da me?

Ciao a tutti!
Sto facendo la mia tesina di maturità, che invece di essere un gioco (come pensavo qui) è una specie di dimostrazione delle DirectX. Ora, ho già trovato un modo per visualizzare il numero di fotogrammi al secondo della mia scena. Ho messo un valore int come attributo della form in cui è presente la scena DirectX e lo vado ad incrementare ogni qual volta traccio qualcosa con il metodo Paint della form.

Inoltre ho fatto partire un thread che cicla all'infinito in questo modo per valutare quando è passato un secondo:

Codice:
private void tempoFps(Object start) //metodo per il thread che visualizza il numero di frame per secondo
        {
            DateTime timeStart = (DateTime)start; //leggo il tempo passato, che è l'ora attuale
            while (true) 
            {
                TimeSpan calcolo = DateTime.Now - timeStart;//faccio la differenza tra il tempo attuale e quello iniziale
                if ((calcolo.Seconds) >= 1) //se è passato almeno un secondo
                {
                    scelta.fps(fps); //chiamo il metodo della finestra di menu per visualizzare il valore del numero di fps
                    fps = 0; // è la variabile che tiene conto degli fps
                    timeStart = DateTime.Now; //riazzero il tempo iniziale
                }
            }
        }
Il metodo chiamato dell'oggetto scelta (che è un'altra form) stampa il numero di fotogrammi al secondo.

L'unico problema è che questo thread, essendo un ciclo infinito, occupa molto tempo cpu (ho un dual core quindi ne occupa la metà), e considerando che prima il mio programma non occupava praticamente nulla di CPU, vorrei ottimizzarlo un po'.

Ho provato ad aprire fraps e lui se la viaggia che è un piacere... Come faccio ad ottimizzare il tutto??
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb
Radeon89 è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2008, 17:20   #2
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Hai diversi modi per farlo. Io ti consiglio di separare il rendering un thread, oppure metterlo in risposta all'evento Idle della Form.

All'inizio del render frame prendi il tempo corrente e lo sottrai al tempo preso al frame precedente. Cosi' calcoli il frame_time e da li' il frame rate. Meglio ancora prendere il tempo ogni X frame.

E' pulito e funziona.

Ora, se metti un ciclo (come il render loop) in un altro thread e non vuoi fargli mangiare tutta la CPU, sbatti un bel Sleep(1) o Sleep(0).

Nel primo caso rilasci la CPU per un millisecondo e il thread va in pausa, mentre nel secondo caso rilasci il resto del timeslice allocato per quel thread al sistema, il thread non va in pausa ma viene rimesso in coda pronto per un'altra allocazione al prossimo round robin. Ma puo' avere alcuni problemi in alcuni casi contorti.

Usa Sleep(1) e funziona una meraviglia.

Note stilistiche:
- scrivi variabili e metodi in inglese
- NON COMMENTARE IL CODICE RIGA PER RIGA O VENGO A CASA TUA E TI SPEZZO LE GINOCCHIA

No, non lo faccio, ma non commentare il codice riga per riga che gesu' bambino piange
fek è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2008, 18:03   #3
Radeon89
Senior Member
 
L'Avatar di Radeon89
 
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
Errore LoaderLock

Ok, ho messo l'istruzione Thread.Sleep(1) ed ora l'utilizzo cpu è tornato normale

Avrei un'altra cosa da chiederti, una curiosità: hai nominato l'evento idle della form. Quando viene generato? Quando l'applicazione arriva alla fine del metodo Paint?

Vado un po' OT per chiederti un'altra cosa

[OT]
Quando da Visual studio faccio partire il programma, ogni tanto mi compare questo errore:

Tentativo di esecuzione gestita da parte della DLL 'C:\WINDOWS\assembly\GAC\Microsoft.DirectX.DirectInput\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.DirectInput.dll' all'interno del blocco OS Loader. Non provare a eseguire codice gestito all'interno di una DllMain o di una funzione di inizializzazione delle immagini. Questa operazione può causare il blocco dell'applicazione.

In presenza di questa istruzione:
Codice:
inizializzaTastiera(handle);
che chiama il metodo per l'inizializzazione della tastiera:
Codice:
public void inizializzaTastiera(IntPtr handle)
        {
            keyb = new Microsoft.DirectX.DirectInput.Device(SystemGuid.Keyboard); //alloco la tastiera di default alla mia variabile "keyb"
            keyb.SetCooperativeLevel(handle, CooperativeLevelFlags.Background | CooperativeLevelFlags.NonExclusive);
            keyb.Acquire();
        }
Dove sta il problema??
Finora a fare partire l'eseguibile da Windows non è successo nulla di strano, ma magari è perché la maggior parte delle volte lo faccio da Visual Studio...
[/OT]
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb

Ultima modifica di Radeon89 : 05-04-2008 alle 15:03.
Radeon89 è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2008, 18:57   #4
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da Radeon89 Guarda i messaggi
Avrei un'altra cosa da chiederti, una curiosità: hai nominato l'evento idle della form. Quando viene generato? Quando l'applicazione arriva alla fine del metodo Paint?
No, e' generato quando la Form non ha piu' messaggi da processare.


Quote:
Dove sta il problema??
Finora a fare partire l'eseguibile da Windows non è successo nulla di strano, ma magari è perché la maggior parte delle volte lo faccio da Visual Studio...
Non ho idea, mai usato, sorry.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 03-04-2008, 18:59   #5
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da fek Guarda i messaggi
No, non lo faccio, ma non commentare il codice riga per riga che gesu' bambino piange

che stai diventando anche tu un evangelista fran?
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2008, 07:59   #6
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Ma è per una Giusta Causa (tm).
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro
@LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro
Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys
cdimauro è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2008, 10:23   #7
Radeon89
Senior Member
 
L'Avatar di Radeon89
 
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
Comunque quel problema è fastidiosissimo, me lo dà quasi sempre da quando ho fatto le ultime modifiche per il conteggio dei fotogrammi al secondo... E non capisco per quale motivo... Inoltre ha reso Visual Studio instabile, nel senso che spesso si blocca sul mio pc quando faccio partire il programma dall'IDE, e poi continua dice di essere in attesa di un evento che tarda ad essere generato...
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb
Radeon89 è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2008, 19:14   #8
Rigo007
Member
 
L'Avatar di Rigo007
 
Iscritto dal: Oct 2001
Città: Trento
Messaggi: 164
Ciao,
vi vedo abbastanza efferati in materia quindi vi chiedo gentilmente una dritta.
Devo imparare a programmare in C# sfruttando le funzionalità e le classi del .NET Framework e volevo sapere quale versione di Visual Studio e quale versione di .NET Framework installare su un computer con SO WinXP.
Grazie.
Rigo007 è offline   Rispondi citando il messaggio o parte di esso
Old 04-04-2008, 21:58   #9
^TiGeRShArK^
Senior Member
 
L'Avatar di ^TiGeRShArK^
 
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12113
Quote:
Originariamente inviato da Rigo007 Guarda i messaggi
Ciao,
vi vedo abbastanza efferati in materia quindi vi chiedo gentilmente una dritta.
Devo imparare a programmare in C# sfruttando le funzionalità e le classi del .NET Framework e volevo sapere quale versione di Visual Studio e quale versione di .NET Framework installare su un computer con SO WinXP.
Grazie.
Visual C# Express 2008 che dovrebbe insallarti automaticamente il .Net Framework 3.5, con cui puoi sfruttare le nuove features tra cui Linq e le properties generate automaticamente e magari qualche altra cosa che ti può citare gugoxx perchè io per ora sto lavorando con .Net 2.0 per motivi di compatibilità maggiore e quindi non lo conosco in maniera approfondita il framework 3.5......
__________________
^TiGeRShArK^ è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2008, 15:02   #10
Radeon89
Senior Member
 
L'Avatar di Radeon89
 
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
Quote:
Originariamente inviato da Rigo007 Guarda i messaggi
Ciao,
vi vedo abbastanza efferati in materia quindi vi chiedo gentilmente una dritta.
Devo imparare a programmare in C# sfruttando le funzionalità e le classi del .NET Framework e volevo sapere quale versione di Visual Studio e quale versione di .NET Framework installare su un computer con SO WinXP.
Grazie.
Mah, io uso Visual Studio 2005, non perché sia il migliore ma la mia scuola ha degli accordi con Microsoft e lo distribuiscono gratuitamente (conoscete l'MSDNAA?). Anche se ora è in distribuzione la versione 2008, che dovrebbe essere migliore.

Comunque in merito al mio problema nessuno sa dirmi niente? Lo fa spesso... E' un errore di LoaderLock
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb
Radeon89 è offline   Rispondi citando il messaggio o parte di esso
Old 05-04-2008, 15:46   #11
kernel::panic
Registered User
 
Iscritto dal: Feb 2008
Messaggi: 77
Quote:
Originariamente inviato da Radeon89 Guarda i messaggi
Comunque in merito al mio problema nessuno sa dirmi niente? Lo fa spesso... E' un errore di LoaderLock
Prova ad andare in "Proprietà progetto", poi nel tab "Debug" e a togliere la spunta a "Enable the Visual Studio hosting process"... a me aveva risolto un analogo problema lavorando con gli hook di sistema.

Ciao
kernel::panic è offline   Rispondi citando il messaggio o parte di esso
Old 07-04-2008, 16:55   #12
Radeon89
Senior Member
 
L'Avatar di Radeon89
 
Iscritto dal: Mar 2006
Città: Provincia di Lecco
Messaggi: 321
No, purtroppo lo fa ancora... Anzi, devo dire che è peggiorata la situazione togliendo il segno di spunta da quella casella. Almeno prima quando lo fa basta farlo ripartire, ora devo provare 3 volte di seguito per riuscire a farlo andare!

Altri suggerimenti???
__________________
CONFIGURAZIONE PC FISSOAlimentatore:Levicom X-Alien 450W.CPU:Intel Core 2 Duo E6600 @2975MHz per ora...VGA:Sapphire x1950 xt 256 mb @634/945 MOBO:P5N-E SLI RAM:2Gb Corsair XMS2 6400 cas4||BENCHMARK PC FISSO 3dMark05:12810 3dMark06:6546||Internet:Fastweb 6mbit/s||PORTATILEAcer Aspire 5920G.CPU:Intel Core 2 Duo T5550.VGA:nVidia 8600M GT 512mb.RAM:3 gb.HDD:160gb
Radeon89 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Motorola razr fold, dalla conchiglia al formato a libro. La recensione Motorola razr fold, dalla conchiglia al formato ...
Recensione Google Pixel Watch 5: sembra lo stesso, ma al polso la differenza si sente Recensione Google Pixel Watch 5: sembra lo stess...
Nokia Innovation Day 2026: la sovranità europea passa dal mercato unico e dai laboratori italiani del gruppo Nokia Innovation Day 2026: la sovranità e...
In sella alla Fiido Nomads Pro: e-bike con motore centrale da 100 Nm per il divertimento a 360 gradi In sella alla Fiido Nomads Pro: e-bike con motor...
ASUS Zenbook 14 (UX3480AA): tanta autonomia con uno chassis bello e robusto ASUS Zenbook 14 (UX3480AA): tanta autonomia con ...
Samsung lavora al Privacy Display v2: sa...
SBS presenta i nuovi accessori Track Fir...
Castlevania: Belmont's Curse, la caccia ...
Nuova promozione Amazon Haul: 5% di scon...
Netflix taglia circa mille posti di lavo...
Bodywel F20PRO a 759€: e-bike pieghevole...
iPhone Duo, senza AppleCare+ riparare lo...
Amazon, offerte da non perdere oggi: Mac...
1.500 km con una ricarica: CATL e Changa...
Rockstar Games punta a ridurre i tempi d...
Accessori auto su Amazon da 22€: aspirab...
Oltre 436 km senza ricaricare: questa mo...
Samsung Health si aggiorna: il coaching ...
XBOX Nano Controller: il nuovo gamepad c...
MSI diversifica il suo business: con EVS...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:53.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v