Nelle ultime settimane, alcuni collegati con i nostri lettori hanno riscontrato un bug noto solo in Directx 9 Profiler. Ci sono una serie di fattori che possono causare questo problema. Discutiamone ora.
Approvato: Fortect
- Mancano 47 minuti.
- La profilazione accurata è difficile per Direct3D
- Come la sequenza di rendering Direct3D produce un profilo accurato
- Profilazione dei cambiamenti di stato Direct3D
-
Sommario - Applicazione
(API) chiamate. Se lo hai fatto ma hai ricevuto buoni risultati che differiscono dalla sequenza di rendering alla progressione di rendering, o se sospetti che l’esperimento non corrisponderà effettivamente alle soluzioni sperimentali effettive, le seguenti informazioni possono aiutarti facilmente a capire perché.
Le informazioni fornite con il presente si basano interamente sul presupposto che tu abbia specifiche ed esperienza nelle seguenti aree:
- Programmazione C / C ++
- Programmazione API Direct3D
- API di misurazione del tempo
- Scheda video, a quel tempo software del driver.
- Possibili risultati inspiegabili al di fuori dell’esperienza di profilazione collegata.
La profilazione accurata di Direct3D è difficile
Il profiler riporta il tempo raggiunto per ogni chiamata API. In definitiva, questo dovrebbe rafforzare le prestazioni rilevando e rimuovendo gli hotspot. Ci saranno sicuramente diversi tipi possibili di profilazione e abilità di profilazione.
- Il Profiler selettivo è più inattivo rispetto al tempo e viene eseguito a intervalli regolari a campione (o registra positivamente) ciò che fa. Mostra la percentuale di tempo speso praticamente per ogni chiamata. In generale, il campionamento da un profiler nuovo di zecca è sicuramente molto invasivo per un’applicazione e inoltre ha un impatto minimo sull’intera applicazione.
- Il tool profiler misura l’effettivo evento che ha richiesto il completamento di una chiamata. Ciò richiede la compilazione dei delimitatori start-stop nell’applicazione. Toolkit è letteralmente un buon profiler, che è relativamente più invasivo per l’applicazione principale rispetto a un profiler di esempio.
- Dovresti anche utilizzare una tecnica di profilazione personalizzata con una sorta di timer ad alte prestazioni significativo. Questo risultato è notevolmente simile a quello del profiler strumentale.
Il tipo al di fuori del profiler o il particolare metodo di profilazione utilizzato è semplicemente un ruolo di attività che genera determinate metriche.
La creazione di profili fornisce risposte a qualsiasi persona per aiutarti a stabilire il budget per il lavoro dei tuoi capifamiglia. Ad esempio, supponiamo di sapere che impiegano, in media, un migliaio di metodi di wall clock per effettuare una chiamata API. Potresti aspettarti un certo livello di inferenza delle prestazioni, ad esempio:
- Esiste una limitazione su un processore a 2 GHz (che impiega il 50 percento del suo tempo di istruzione) che può chiamare questa API 1 mil di volte al secondo.
- Per ottenere 30 occhiali al secondo, non puoi chiamare questa API due volte per ottenere 33.000 volte per fotogramma.
- Puoi mantenere un massimo di 3.3000 oggetti ciascuno (assumendo che il frame 10 di questo tipo di API crei la sequenza di visualizzazione per ogni oggetto).
In poche parole, se hai abbastanza minuti per comunicare con l’API, puoi porre una domanda relativa al budget per parametri come la grande quantità di primitive che possono essere visualizzate in modo interattivo. Ma i numeri grezzi restituiti dal fantastico modo in cui il profiler non può rispondere con precisione alle domande sul gestore dei costi. Questo perché la direzione grafica ha problemi di progettazione estremamente difficili come il numero di apparecchiature che devono essere eseguite, il numero di chip del processore che dominano il flusso di lavoro tra i componenti e viceversa, oltre alle strategie di ottimizzazione implementate nell’aviatore in fase di esecuzione e quindi può rendere il tubo più efficiente in fase di progettazione.
Ogni API chiama attraverso più componenti
Ogni chiamata deve provenire da più componenti a causa di come l’applicazione della scheda grafica. Ad esempio, gareOsserviamo nella seguente sequenza di rendering, che include due riferimenti per disegnare un triangolo:
definisce consistenza e consistenza (...);DrawPrimitive (D3DPT_TRIANGLELIST, 0, 1);
Il seguente diagramma delle idee mostra i vari componenti umani che i doppiaggi devono sempre attraversare.
L’applicazione si riferisce a What Direct3d, manipola la scena umana, gestisce l’interazione dell’operatore e apprende come viene eseguito il rendering. Tutto questo lavoro è specificato nella sequenza dell’esposizione, che secondo gli esperti viene inviata durante la riproduzione utilizzando le chiamate API Direct3D. La sequenza di rendering dovrebbe essere solo indipendente dall’hardware (ovvero i messaggi o le chiamate API del telefono sono indipendenti dall’hardware, ma conoscono le funzionalità memorizzate dalla scheda video principale).
La riproduzione converte queste chiamate in un formato indipendente dal dispositivo. Il runtime gestisce tutte queste comunicazioni speciali tra un’applicazione e questo driver, in modo che l’attività venga eseguita su più modifiche positive domestiche compatibili (a seconda di quali funzionalità richiedonoXia). Quando viene misurata una singola chiamata di prestazione, il profiler di strumentazione tiene traccia di quanto tempo è stato speso attualmente per il lavoro e per quanto tempo la funzione ha restituito. Una limitazione dello strumento proprietario profiler è quella che non tiene conto del tempo necessario a una mazza da golf per offrire l’output alla scheda grafica, così come il tempo necessario per visualizzare la scheda grafica effettiva. In altre parole, un profiler di strumentazione delle aspettative per aiutarti ad assegnare tutto il tuo lavoro correlato a ciascuna chiamata di funzione.
Il software del driver consente di utilizzare la conoscenza hardware specifica associata alla scheda Video Tarot per convertire un’enorme sequenza di comandi indipendente dal dispositivo in un visto video o una sequenza di comandi mastercard completamente nuova . I driver possono anche ottimizzare la forma in cui i comandi vengono inviati alla scheda di riproduzione video, quindi il rendering sulla scheda video spesso è davvero efficiente. Questi aggiustamenti possono creare battute d’arresto nella profilazione perché la quantità di lavoro appreso non è in realtà quello che sembra (potrebbe essere necessario scoprire eventuali aggiustamenti per adattarsi a questo). Il driver di solito assume il controllo della configurazione prima che la sua scheda grafica elabori qualsiasi richiesta importante.
La scheda grafica esegue la maggior parte del resto effettivo del rendering, combinando i dati di un vertice di base e buffer di indice, trame, suggerimenti di rendering e controlli grafici.
Ogni etichetta API Direct3D deve essere creata da un facet gestito (runtime, driver e la maggior parte della scheda grafica) per eseguire il rendering.
I componenti sono controllati da più processori
Approvato: Fortect
Fortect è lo strumento di riparazione PC più popolare ed efficace al mondo. Milioni di persone si affidano a milioni di persone per mantenere i loro sistemi in esecuzione veloci, fluidi e privi di errori. Grazie alla sua semplice interfaccia utente e al potente motore di scansione, Fortect trova e risolve rapidamente un'ampia gamma di problemi di Windows, dall'instabilità del sistema e problemi di sicurezza alla gestione della memoria e ai colli di bottiglia delle prestazioni.
La relazione tra uno qualsiasi di questi componenti è ancora più complessa perché un’utilità, il runtime e il driver sono quasi sempre controllati da un singolo processore e una scheda video può essere controllata da un singolo processore. Il piano seguente mostra due tipi di processori: dispositivo di elaborazione centrale (CPU) e unità di elaborazione grafica (GPU).
I gadget per PC includono almeno un processore e un tipo di GPU, ma possono anche includerne diversi o loro. I processori si trovano solitamente sulla scheda madre, tuttavia le GPU sono una scheda madre o forse una buona scheda video solida. La velocità della CPU è determinata semplicemente dal chip dell’orologio a muro sulla scheda madre, tuttavia l’incremento della GPU è determinato dall’orologio reale dell’essere umano.
Accelera ora le prestazioni del tuo computer con questo semplice download.