Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker
Analizziamo nel dettaglio DJI RS 5, l'ultimo arrivato della famiglia Ronin progettato per videomaker solisti e piccoli studi. Tra tracciamento intelligente migliorato e ricarica ultra rapida, scopriamo come questo gimbal eleva la qualità delle produzioni.
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming
AMD Ryzen 7 9850X3D è la nuova CPU gaming di riferimento grazie alla 3D V-Cache di seconda generazione e frequenze fino a 5,6 GHz. Nei test offre prestazioni superiori a 9800X3D e 7800X3D, confermando la leadership AMD nel gaming su PC.
Le soluzioni FSP per il 2026: potenza e IA al centro
Le soluzioni FSP per il 2026: potenza e IA al centro
In occasione del Tech Tour 2025 della European Hardware Association abbiamo incontrato a Taiwan FSP, azienda impegnata nella produzione di alimentatori, chassis e soluzioni di raffreddamento tanto per clienti OEM come a proprio marchio. Potenze sempre più elevate negli alimentatori per far fronte alle necessità delle elaborazioni di intelligenza artificiale.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-07-2011, 08:48   #1
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
[C/C++] problemi di determinismo

sto lavorando in ambiente windows xp e sapendo che tale sistema operativo possiede uno schedule ti tipo NON deterministico mi chiedevo come bypassare tale limitazione per avere almeno in parte dei tempi corretti.

Qualcuno che ha avuto esperienze di programmazione di questo tipo (real time) su sistemi non deterministici potrebbe illuminarmi?

grazie
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 11:54   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Ciao.
Una cosa che ricordo e' che il problema non e' legato a Windows o altro sistema operativo.
Non e' possibile creare un vero "real time" sulle nostre macchine a causa della natura del meccanismo degli interrupt del microprocessore.

Poi ci si potra' accontentare, ma resta un real Time like, non vero.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 12:15   #3
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da misterx Guarda i messaggi
sto lavorando in ambiente windows xp e sapendo che tale sistema operativo possiede uno schedule ti tipo NON deterministico mi chiedevo come bypassare tale limitazione per avere almeno in parte dei tempi corretti.

Qualcuno che ha avuto esperienze di programmazione di questo tipo (real time) su sistemi non deterministici potrebbe illuminarmi?

grazie
Di quali tempi parli, in particolare? Suppongo ti riferisca ai tempi di esecuzione (in questo caso, determinismo = stessa durata delle esecuzioni di risposta ad eventi esterni).

Non l'ho mai provato, ma per quel poco che ne so c'e' la possibilita' di alzare la priorita' di un processo al livello real time. Non ho idea di QUANTO real time sia, ma penso che si possa trovare in rete qualche informazione.
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 12:18   #4
sottovento
Senior Member
 
L'Avatar di sottovento
 
Iscritto dal: Nov 2005
Città: Texas
Messaggi: 1722
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Ciao.
Una cosa che ricordo e' che il problema non e' legato a Windows o altro sistema operativo.
Non e' possibile creare un vero "real time" sulle nostre macchine a causa della natura del meccanismo degli interrupt del microprocessore.

Poi ci si potra' accontentare, ma resta un real Time like, non vero.
No, dai! E' un po' drastico.
Prima di tutto, occorrerebbe sapere quale livello di determinismo ci si pone come obiettivo.
Ma... sono sempre esistiti i sistemi operativi real time! I piu' famosi, per esempio, sono QNX o VxWorks, i quali ottengono un buon livello di prestazioni mediante schedulazione "run to completion" basata su priorita', con preemption.

Ovviamente il time sharing e' proibito
__________________
In God we trust; all others bring data
sottovento è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 12:37   #5
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da sottovento Guarda i messaggi
Di quali tempi parli, in particolare? Suppongo ti riferisca ai tempi di esecuzione (in questo caso, determinismo = stessa durata delle esecuzioni di risposta ad eventi esterni).

Non l'ho mai provato, ma per quel poco che ne so c'e' la possibilita' di alzare la priorita' di un processo al livello real time. Non ho idea di QUANTO real time sia, ma penso che si possa trovare in rete qualche informazione.
ciao,
le informazioni che ho a riguardo e che mi sono state riferite sono che windows dedica ogni tot dempo non determinabile, di 10 ms per riorganizzare memoria e/o altro, chiamiamoli usi interni.
Per l'appilcativo che sto scrivendo io, siccome acquisisce segnali via ethernet, indagando mi hanno riferito gli stessi costruttori delle schede di cui acquisisco lo stato dei segnali che il ritardo esistente sulla ethernet da loro misurato è di 33 ms.

Il mio problema è dare un valore di riferimento, un dato di targa al mio programma nel senso che io possa dire che tale software è in grado di campionare segnali in un intorno di x ms.

Detto quanto sopra, ho scritto il programma usando thread e non rilevo affatto i ritardi che mi sonon stati riferiti, ma al massimo quelli che impongo io ai vari thread per non sollecitare troppo la CPU e lasciare spazio agli altri programmi.

Ho campionato 1 milione di segnali con un ritardo massimo, misurato tra il thread che legge il segnale su ethernet e tra il thread che scrive, di 16 ms.
Il thread che legge viene eseguito ogni 20 ms, quello che scrive ogni 50 ma il tempo che intercorre tra il momento in cui windows dedica tempo al thread che legge e il thread che scrive è quello che ho specificato cioè, 16 ms.

In uno scenario del genere, che tempistiche dichiaro per il mio programma?
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 13:46   #6
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4739
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Ciao.
Una cosa che ricordo e' che il problema non e' legato a Windows o altro sistema operativo.
oddio, in realtà sì
se si considerano sistemi general purpose (come windows, linux ecc) e si pensa alle finalità con cui sono nati (in funzione di quale tipo di workload e di quale modello progettuale per quanto riguarda le applicazioni) si nota che la priorità era sostanzialmente massimizzare il throughput del sistema in presenza di task batch
ma massimizzare il throughput è per certi versi antitetico all' esigenza primaria in ambito realtime che è dato un evento, gestirlo (quindi saltare alla porzione di codice appropriata -e/o attivare il processo relativo- ed eseguirla) nel minor tempo possibile (nel caso del realtime hard, in un tempo deterministico o quantomeno superiormente limitato con il limite superiore certo e documentato), motivo per cui in ambito realtime sono diverse sia le politiche di scheduling sia le modalità con cui operano i progettisti di applicazioni

questi ultimi spesso analizzeranno come prima cosa le richieste computazionali della/e loro applicazione/i per determinarne i vincoli temporali minimi (WCET - worst case execution times) e sceglieranno un sistema operativo realtime capace di garantire su quel certo hw latenze compatibili con quei vincoli di modo da assicurare la schedulabilità del sistema
il sistema operativo RT dal canto suo sarà implementato in maniera tale per cui latenze di scheduling e di esecuzione delle system call saranno se non costanti (indipendenti dal numero di oggetti/processi/file/... ) quantomeno superiormente limitate, basato su un kernel preemptible (*) (che con buona probabilità sarà un microkernel **) e magari metterà a disposizione (in effetti imporrà) dei protocolli di resource reservation (***) - allora starà al progettista strutturare e calibrare il sistema
e già a questo punto sarà chiaro che lo sviluppo di una sistema RT è un processo a priori e olistico ...

*: rendere il kernel stesso tutto o quasi interrompibile (naturalmente tranne quelle parti che eseguono operazioni atomiche, ma queste possono essere contenute in sezioni di relativamente poche righe di codice invece di imporre la non interrompibilità dell' intero kernel o sottosistema) quindi reattivo a eventi come appunto interrupt e capace di notificare tali eventi a task userspace (oltre che di schedularli) è il passo più determinante verso la riduzione delle latenze,
**: questo perchè il uK si presta meglio alla minimizzazione dei code path e al loro auditing - cosa per cui occorre che la code base sia il più compatta e gestibile possibile - non per presunte maggiori prestazioni che anzi su un microkernel sono tipicamente sacrificate dal fatto stesso di avere agenti server in processi separati (ma come si diceva prima, nel realtime contano affidabilità e latenze, più che throughput)
***: un' applicazione potrà essere accettata per l' esecuzione solo se le sue richieste in termini di risorse - tempo cpu e memoria - sommate al carico attuale non superano una soglia (iirc dipendente dall' algoritmo di scheduling, in certi casi intorno al 75-80%, al di sopra del quale la gestione non è più garantita)
Quote:
Non e' possibile creare un vero "real time" sulle nostre macchine a causa della natura del meccanismo degli interrupt del microprocessore.

Poi ci si potra' accontentare, ma resta un real Time like, non vero.
questa, scusami, ma mi giunge nuova
sistemi come QNX e VXWorks esistono e girano sull' hw in circolazione, prevalentemente su piattaforma ARM (perchè più diffusa in ambito embedded) ma mi risulta anche X86 - e qnx e vxworks sono sistemi real time HARD (capaci -di loro- di assicurare il rispetto dei vincoli temporali in ambiti - avionica, automotive, controlo di centrali nucleari ecc - in cui superamento di una deadline implica fallimento del sistema)
per cui tenderei a escludere sia un problema di interrupt, più un problema di concezione (ma anche finalità) dell' OS (e più precisamente del kernel)

riprendendo il discorso di cui sopra, un kernel non concepito in funzione del realtime, quindi
- con tempi di reazione a interrupt non noti costanti o non superiormente limitati (se non proprio capace di perdersi degli interrupt a causa della possibilità di stare eseguendo del codice non interrompibile, quindi con interrupt disabilitati, nel momento in cui si verifica un evento)
- con tempi di esecuzione delle syscalls non noti costanti o non superiormente limitati dovuti a implementazione non O(k) delle syscall stesse - cosa che in apparenza non è un problema o lo è solo se gli interrupt restano disabilitati per tempi lunghi... in realtà si trascura che anche i processi RT come qualunque altro processo eseguono IO, ma trattandosi di processi RT la possibilità di completare tutte le proprie operazioni prima della deadline è cruciale per il successo o fallimento del sistema, quindi è fondamentale che anche le sytem call siano caratterizzate da tempi superiormente limitati

può al più "cercare" di eseguire processi real time riducendo quanto possibile le latenze (ma su un kernel monolitico o ibrido è assai più complicato se non impossibile a causa delle dimensioni -di vari ordini di grandezza maggiori -della code base del kernel stesso) e aumentando la priorità (su windows e linux i processi RT vengono eseguiti prima dello stesso scheduler e di ogni altro processo, che in effetti rischia di andare in starving ) ma di più non può fare e non può comunque offire garanzie, trattandosi di un compromesso tecnologico realizzato con differenti priorità
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate

Ultima modifica di jappilas : 25-07-2011 alle 13:59.
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 13:47   #7
jappilas
Senior Member
 
L'Avatar di jappilas
 
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4739
Quote:
Originariamente inviato da sottovento Guarda i messaggi
No, dai! E' un po' drastico.
Prima di tutto, occorrerebbe sapere quale livello di determinismo ci si pone come obiettivo.
Ma... sono sempre esistiti i sistemi operativi real time! I piu' famosi, per esempio, sono QNX o VxWorks, i quali ottengono un buon livello di prestazioni mediante schedulazione "run to completion" basata su priorita', con preemption.
ti chiedo scusa, quando stavo scrivendo (ci ho messo un po') il tuo post non c' era ancora

Quote:
Ovviamente il time sharing e' proibito
ed anche il paging con swap su disco
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name
Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish
Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
jappilas è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 15:12   #8
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da misterx Guarda i messaggi
Ho campionato 1 milione di segnali con un ritardo massimo, misurato tra il thread che legge il segnale su ethernet e tra il thread che scrive, di 16 ms.
Il thread che legge viene eseguito ogni 20 ms, quello che scrive ogni 50 ma il tempo che intercorre tra il momento in cui windows dedica tempo al thread che legge e il thread che scrive è quello che ho specificato cioè, 16 ms.
Ciao, scusa se probabilmente sottolineo una cosa che hai già controllato, ma come hai "misurato" (chiamando quali API di Windows) questa latenza?
Perchè se non sbaglio per poter effettuare misurazioni precise di quantità molto piccole di tempo bisogna utilizzare gli "High Performance Counter" (timer ad alta precisione, altrimenti in Windows c'è una granularità di cira 15,qualcosa millisec, e il valore della tua misura mi suona appunto "sospetto").
Qui c'è una pagina, purtroppo di più non so dirti.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 17:26   #9
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da sottovento Guarda i messaggi
No, dai! E' un po' drastico.
Prima di tutto, occorrerebbe sapere quale livello di determinismo ci si pone come obiettivo.
Ma... sono sempre esistiti i sistemi operativi real time! I piu' famosi, per esempio, sono QNX o VxWorks, i quali ottengono un buon livello di prestazioni mediante schedulazione "run to completion" basata su priorita', con preemption.

Ovviamente il time sharing e' proibito
Sulle "nostre macchine" intendevo sui nostri microprocessori, non su "Tutti" i microprocessori.
Nostri ovvero gli x86, ma anche la famiglia 680x0.
E il problema era proprio dovuto a come sono gestiti interrupt.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 25-07-2011 alle 17:30.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 17:47   #10
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Sulle "nostre macchine" intendevo sui nostri microprocessori, non su "Tutti" i microprocessori.
Nostri ovvero gli x86, ma anche la famiglia 680x0.
E il problema era proprio dovuto a come sono gestiti interrupt.
Non mi risulta. Ad esempio le varianti real-time di linux (e.g. Xenomai) fanno in modo che il processo real-time abbia priorita' rispetto agli interrupt handlers non real-time (kernel compreso).
L'unico grosso problema per le macchine x86 attualmente sono gli SMI visto la cpu e il sistema neanche se ne accorgono, e quindi bisogna usare dei workaround per disabilitarli (con risultati variabili a seconda della scheda madre).
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 17:56   #11
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Quote:
Originariamente inviato da jappilas Guarda i messaggi
ti chiedo scusa, quando stavo scrivendo (ci ho messo un po') il tuo post non c' era ancora

ed anche il paging con swap su disco
E anche le allocazioni di memoria
Cmq se siamo nell'ordine di una ventina di millisecondi, dovrebbe essere in grado ottenere prestazioni accettabili a patto di
- Impostare la priorita' massima per il processo interessato
- Spostare l'output su disco (o su rete) su un altro thread/processo
- Evitare allocazioni di memoria durante il loop
- Tenere basso il carico della macchina.

Il problema piu' grosso e' probabilmente la lettura da rete, li' l'unica cosa pratica che mi viene in mente e' evitare al massimo altro traffico che non sia quello dell'applicazione, magari isolando il computer dalla LAN "generale".

Potrebbe valer la pena di valutare una versione hard real time di windows (CE o XP Embedded) anche se non ho alcuna esperienza con queste... e comunque come dicevo le latenze in gioco non sono poi eccessivamente basse.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 18:06   #12
pabloski
Senior Member
 
Iscritto dal: Jan 2008
Messaggi: 8406
Quote:
Originariamente inviato da misterx Guarda i messaggi
sto lavorando in ambiente windows xp e sapendo che tale sistema operativo possiede uno schedule ti tipo NON deterministico mi chiedevo come bypassare tale limitazione per avere almeno in parte dei tempi corretti.

Qualcuno che ha avuto esperienze di programmazione di questo tipo (real time) su sistemi non deterministici potrebbe illuminarmi?

grazie
è necessario xp? in questo caso non c'è nulla che tu possa fare

se invece puoi optare per altro potresti considerare qnx o baremetal
pabloski è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 18:13   #13
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
Ciao, scusa se probabilmente sottolineo una cosa che hai già controllato, ma come hai "misurato" (chiamando quali API di Windows) questa latenza?
Perchè se non sbaglio per poter effettuare misurazioni precise di quantità molto piccole di tempo bisogna utilizzare gli "High Performance Counter" (timer ad alta precisione, altrimenti in Windows c'è una granularità di cira 15,qualcosa millisec, e il valore della tua misura mi suona appunto "sospetto").
Qui c'è una pagina, purtroppo di più non so dirti.
questa non la sapevo, io mi sono affidato alla GetLocalTime() che senza approfondire ritenevo precisa

Ho trovato anche questo esempio http://stackoverflow.com/questions/1...ormancecounter

Ultima modifica di misterx : 25-07-2011 alle 18:29.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 18:15   #14
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da pabloski Guarda i messaggi
è necessario xp? in questo caso non c'è nulla che tu possa fare

se invece puoi optare per altro potresti considerare qnx o baremetal
ciao,
devo usare XP un quanto su tale sistema operativo girano già altri programmi e non è possibile cambiarlo pena la riscrittura completa degli altri programmi e sono troppi
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 18:35   #15
tacchinox
Member
 
Iscritto dal: Sep 2008
Messaggi: 237
forse con xp embedded qualcosa ci cavi, altrimenti potresti usare win CE che è piu' indicato.
Con l'XP normale il real time è irreale.

Ma poi perche' non usi delle schede dedicate per l'acquisizione, con il loro sistema operativo ovviamente, e con l'XP ci analizzi solo i buffer?
Io lavoro nell'automazione e di soluzioni ce ne sono a tonnellate, basta pagare...
Per farti un esempio la National instruments ha sicuramente qualcosa su bus PXI o quello che è.
tacchinox è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 19:08   #16
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da tacchinox Guarda i messaggi
forse con xp embedded qualcosa ci cavi, altrimenti potresti usare win CE che è piu' indicato.
Con l'XP normale il real time è irreale.

Ma poi perche' non usi delle schede dedicate per l'acquisizione, con il loro sistema operativo ovviamente, e con l'XP ci analizzi solo i buffer?
Io lavoro nell'automazione e di soluzioni ce ne sono a tonnellate, basta pagare...
Per farti un esempio la National instruments ha sicuramente qualcosa su bus PXI o quello che è.
perchè XP è già usato per altri scopi e non posso sostituirlo, per il momento.
Terminato questo progetto mi orienterò su windows xp embedded o windows CE o Linux.

Già avere il tempo speso in modo preciso come mi ha suggerito banryu79 ho idea che mi porterà sulla strada giusta
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 19:13   #17
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da misterx Guarda i messaggi
[OT]
Commentato nientepopodimenoche da Alex Martelli, alla faccia!
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 19:27   #18
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
Quote:
Originariamente inviato da banryu79 Guarda i messaggi
[OT]
Commentato nientepopodimenoche da Alex Martelli, alla faccia!
quindi vado sul sicuro

Non ho capito se il numero di tick si basa sulla percentuale d'uso della CPU o altro ed anche se oltre questo metodo che ho già implementato grazie a te e ad Alex sia il più preciso possibile


p.s.
si direbbero variazioni di stato ALTO/BASSO del chip di clock

Ultima modifica di misterx : 25-07-2011 alle 19:50.
misterx è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 19:54   #19
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Ripeto: non so molto, a parte quello che ho letto, perchè son questioni con cui non ho mai avuto a che fare direttamente (in Java uso System.nanoTime() e tutto quello che so è che la jvm in Windows è implementata appoggiandosi alle QueryPerformanceCounter/QueryPerfomanceFrequency API, se disponibili).
Cosa vadano a toccare le QPC API, a livello di hardware, non saprei.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 25-07-2011, 20:02   #20
misterx
Senior Member
 
Iscritto dal: Apr 2001
Città: Milano
Messaggi: 3741
ok grazie, approfondisco io

ciao
misterx è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Le soluzioni FSP per il 2026: potenza e IA al centro Le soluzioni FSP per il 2026: potenza e IA al ce...
AWS annuncia European Sovereign Cloud, il cloud sovrano per convincere l'Europa AWS annuncia European Sovereign Cloud, il cloud ...
Redmi Note 15 Pro+ 5G: autonomia monstre e display luminoso, ma il prezzo è alto Redmi Note 15 Pro+ 5G: autonomia monstre e displ...
Xiaomi 17: ecco il prezzo europeo del to...
Google fa tremare l'industria dei videog...
Gli sviluppatori 'abbandonano' Xbox: il ...
Galaxy S27 Ultra, è già te...
PlayStation Portal con display OLED: Son...
POCO X8 Pro e Pro Max sono quasi pronti:...
OpenAI ha bisogno di nuovi fondi: NVIDIA...
Mese nuovo, rinnovo delle offerte Amazon...
Accessori auto imperdibili su Amazon: pu...
Gli utenti iPhone possono ridurre la pr...
Come fare affari con l'usato garantito d...
Il miglior tablet di tutta Amazon, DOOGE...
Gli smartphone in super offerta su Amazo...
Produttori di memoria più severi ...
WhatsApp Business, Meta introduce costi ...
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: 00:18.


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