Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria
vivo X300 Pro rappresenta un'evoluzione misurata della serie fotografica del produttore cinese, con un sistema di fotocamere migliorato, chipset Dimensity 9500 di ultima generazione e l'arrivo dell'interfaccia OriginOS 6 anche sui modelli internazionali. La scelta di limitare la batteria a 5.440mAh nel mercato europeo, rispetto ai 6.510mAh disponibili altrove, fa storcere un po' il naso
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo
Lenovo Legion Go 2 è la nuova handheld PC gaming con processore AMD Ryzen Z2 Extreme (8 core Zen 5/5c, GPU RDNA 3.5 16 CU) e schermo OLED 8,8" 1920x1200 144Hz. È dotata anche di controller rimovibili TrueStrike con joystick Hall effect e una batteria da 74Wh. Rispetto al dispositivo che l'ha preceduta, migliora ergonomia e prestazioni a basse risoluzioni, ma pesa 920g e costa 1.299€ nella configurazione con 32GB RAM/1TB SSD e Z2 Extreme
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti
A re:Invent 2025, AWS mostra un’evoluzione profonda della propria strategia: l’IA diventa una piattaforma di servizi sempre più pronta all’uso, con agenti e modelli preconfigurati che accelerano lo sviluppo, mentre il cloud resta la base imprescindibile per governare dati, complessità e lock-in in uno scenario sempre più orientato all’hybrid cloud
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 12-03-2008, 14:47   #41
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da cdimauro Guarda i messaggi
Con le eccezioni io NON dovrei mettere NESSUN if, visto che al primo utilizzo della risorsa dovrebbe esser generata l'apposita eccezione.
non se ti ritrovi una funzione già pronta che non lancia nessuna eccezione ma restituisce codici di errore; oppure che fa entrambe le cose (ne esistono tra le Win32).

e ad ogni modo ammettendo anche l'if oltre al jump del goto l'allocazione di un blocco di heap e chiamata al costruttore dell'eccezione su Windows costa comunque di più (tra chiamate a funzioni varie del runtime di Visual C++, chiamate della Heap API di Win32, eventuali chiamate al Virtual Memory Manager con conseguente switch in kernel mode se necessario, ritorno all'user mode, chiamata al costruttore, e chi più ne ha più ne metta).

Quote:
Il che, permettimi, è MOLTO differente in termini prestazionali, visto che la creazione dell'oggetto eccezione avviene esclusivamente nel momento in cui effettivamente bisogna generarla.
questo è vero, ma tanto l'if su Windows ci sta comunque perché l'API quella è, e qualunque framework deve andare a finire per forza là. l'eccezione la lancia o non la lancia solo perché controlla che tutto sia andato bene con un if.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 14:54   #42
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da kernel::panic Guarda i messaggi
Esattamente! Il problema è proprio questo: le API dei sistemi operativi sono scritte in C
veramente le Win32 sono scritte in C++; sono le funzioni esposte ad essere puramente C (e neanche tutte: vedi le miriadi di interfacce COM, o addirittura la GDI+).


Quote:
(per cui no eccezioni)
capisco che tu sia abituato a quella schifezza di Linux dove al massimo puoi trovare i segnali ( ), ma Windows le eccezioni le ha eccome: usa un meccanismo che si chiama SEH (Structured Exception Handling).


Quote:
e sono poche le librerie scritte in C++ che ne fanno uso.
tutte le librerie, indipendentemente dal linguaggio in cui sono scritte, devono direttamente o indirettamente andare a finire nelle API o nelle syscall che dir si voglia.


Quote:
In ambiente MS mi è capitato di usare ALT/MFC, [...]
*ATL


Quote:
[...] Quindi non c'è bisogno di fare il cleanup: viene già fatto dal distruttore quando termina lo scoop.
*scope


Quote:
Originariamente inviato da ally Guarda i messaggi
...scusate l'ignoranza...programmo in java dove il goto è riservato ma non utilizzabile...come mai questo goto è tanto bistrattato?...se esiste come funzione perchè è ritenuto una porcata?...
chiedilo a Dijkstra: l'ha detto lui, mica noi
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 15:14   #43
kernel::panic
Registered User
 
Iscritto dal: Feb 2008
Messaggi: 77
Quote:
Originariamente inviato da 71104 Guarda i messaggi
capisco che tu sia abituato a quella schifezza di Linux
de gustibus

Quote:
Windows le eccezioni le ha eccome: usa un meccanismo che si chiama SEH (Structured Exception Handling).
Questo non lo sapevo, l'ho imparato ora... però lasciami dire che costrutti così non sono molto C/C++ standard:

Codice:
VOID main(VOID) 
{ 
    __try 
    { 
        __try 
        { 
            RaiseException(1,         // exception code 
                0,                    // continuable exception 
                0, NULL);             // no arguments 
        } 
        __finally 
        { 
            printf("2 ");             // this is printed second 
        } 
    } 
    __except ( FilterFunction() ) 
    { 
        printf("3\n");                // this is printed last 
    } 
}

Quote:
*ATL
*scope
Quando ho scritto ero un po' di fretta, dovevo piazzarmi davanti alla TV per vedere l'Inter perd... ehm giocare!

Ciao
kernel::panic è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 15:43   #44
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da kernel::panic Guarda i messaggi
de gustibus
no, non si tratta di gusti... i segnali fanno proprio oggettivamente schifo


Quote:
Questo non lo sapevo, l'ho imparato ora... però lasciami dire che costrutti così non sono molto C/C++ standard:
1) e a me?
2) certo se poi tu dichiari il main come void, anzi VOID...
3) sbaglio o ci mancava una printf("1 ") ?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 15:44   #45
tomminno
Senior Member
 
Iscritto dal: Oct 2005
Messaggi: 3306
Quote:
Originariamente inviato da kernel::panic Guarda i messaggi
Questo non lo sapevo, l'ho imparato ora... però lasciami dire che costrutti così non sono molto C/C++ standard:
Non sono standard, ma ti mettono al riparo da dereferenziazione di puntatori nulli/non istanziati, stack overflow e chi più ne ha più ne metta.

Mi sembrava di aver capito però che Microsoft non ne consigliasse l'uso in C++.
tomminno è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 15:45   #46
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da tomminno Guarda i messaggi
Mi sembrava di aver capito però che Microsoft non ne consigliasse l'uso in C++.
sarà l'ennesima volta che scrivo che su certi compilatori le eccezioni SEH interferiscono con le eccezioni C++ e viceversa.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2008, 16:46   #47
kernel::panic
Registered User
 
Iscritto dal: Feb 2008
Messaggi: 77
Quote:
Originariamente inviato da 71104 Guarda i messaggi
1) e a me?
un grazie era sottinteso
kernel::panic è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 08:16   #48
cdimauro
Senior Member
 
L'Avatar di cdimauro
 
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
Quote:
Originariamente inviato da 71104 Guarda i messaggi
non se ti ritrovi una funzione già pronta che non lancia nessuna eccezione ma restituisce codici di errore; oppure che fa entrambe le cose (ne esistono tra le Win32).

e ad ogni modo ammettendo anche l'if oltre al jump del goto l'allocazione di un blocco di heap e chiamata al costruttore dell'eccezione su Windows costa comunque di più (tra chiamate a funzioni varie del runtime di Visual C++, chiamate della Heap API di Win32, eventuali chiamate al Virtual Memory Manager con conseguente switch in kernel mode se necessario, ritorno all'user mode, chiamata al costruttore, e chi più ne ha più ne metta).

questo è vero, ma tanto l'if su Windows ci sta comunque perché l'API quella è, e qualunque framework deve andare a finire per forza là. l'eccezione la lancia o non la lancia solo perché controlla che tutto sia andato bene con un if.
Alberto, il problema è che continui a ragionare in termini di C e non di C++.

Che ci debba essere ALMENO un if / condizione è cosa naturale: deve accadere, nel normale flusso dell'elaborazione, che da qualche parte qualcuno deve accorgersi che una richiesta non possa andare a buon fine.

Il problema è: come gestire questa condizione d'errore?

La prassi con C & affini è quella della catena di if, dal primo che l'ha rilevata fino all'ultimo che la deve poi gestire. Tutti if condizionali, che, come sai, sono i peggiori da trattare per un processore.

In C++ la prassi sarebbe: al primo if sollevo una precisa eccezione, che viene intercettata dal primo handler "utile". Quindi un solo if condizionale e basta.

Il guadagno mi sembra evidente: a parte il primo if che è comune a entrambi, nel primo caso c'è la penalizzazione di effettuare SEMPRE controlli sul risultato, mentre nel secondo non c'è nessun if e tra l'altro l'eccezione viene costruita soltanto quando si verifica.

Questo a livello teorico, raffrontando un approccio tradizionale a uno basato sulle eccezioni.

Poi se nella pratica abbiamo sistemi che sono basati esclusivamente sul primo, oppure che sono un misto fra il primo e il secondo, ne prendo atto, non c'è problema.
__________________
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 13-03-2008, 09:03   #49
guyver
Bannato
 
L'Avatar di guyver
 
Iscritto dal: May 2001
Città: Versilia
Messaggi: 1503
è bello notare (almeno ai miei tempi) come questo costrutto :
http://en.wikipedia.org/wiki/Spaghetti_code

Codice:
10 i = 0
20 i = i + 1
30 PRINT i; " squared = "; i * i
40 IF i < 10 THEN GOTO 20
50 PRINT "Program Completed."
60 END
fosse bellamente inculcato nelle nostre giovani menti...almeno fino alla fine delle superiori
anche in pascal...
ora mi chiedo, se una cosa è "sbagliata" o è meglio non usarla per tanti motivi...non sarebbe meglio non insegnarla nemmeno, specialmente nelle classi inferiori, e trattarlo solamente come "distinguo" nei corsi superiori??
oddio magari ora è cosi... spero

ps per quanto riguarda torvalds, io non ne capisco una mazza di queste cose a questo livello, quindi non uccidetemi... il costrutto goto avrà qualche pregio? tipo la velocità di esecuzione? forse linus è convinto di gestire tutti i problemi del goto a livello di ingegnerizzazione del kernel, e "beneficiare" di qualche pregio di goto?? altrimenti perchè lo fa??

Ultima modifica di guyver : 13-03-2008 alle 09:17.
guyver è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:15   #50
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Mai fatto il goto alle superiori...sia in C che in Pascal
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:21   #51
guyver
Bannato
 
L'Avatar di guyver
 
Iscritto dal: May 2001
Città: Versilia
Messaggi: 1503
Quote:
Originariamente inviato da cionci Guarda i messaggi
Mai fatto il goto alle superiori...sia in C che in Pascal
beato... vallo a dire alla mia professoressa che non sapeva neanche accenderlo il pc eh eh... una volta mi pare in 4, ci ritrovammo a disegnare un coniglio in codice ascii in pascal mooolto utile....

cosa? il c? mai visto solo basic (ma il gwBasic!!) e pascal....
ah che mondo...

Ultima modifica di guyver : 13-03-2008 alle 09:26.
guyver è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:32   #52
WhiteWolf42
Senior Member
 
L'Avatar di WhiteWolf42
 
Iscritto dal: Aug 2005
Città: Monza
Messaggi: 2073
Quote:
Originariamente inviato da cionci Guarda i messaggi
Mai fatto il goto alle superiori...sia in C che in Pascal
l'ho usato una volta .... voto -> 2, da quel momento ho capito ... goto-> BRUTTO
__________________
In Omnia Paratus - Improvvisare, Adattarsi, Raggiungere lo scopo
XboxLive: WhiteWolf56933, PSN: WhiteWolf056933, Steam:WhiteWolf056933
WhiteWolf42 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:33   #53
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Quote:
Originariamente inviato da guyver Guarda i messaggi
cosa? il c? mai visto solo basic (ma il gwBasic!!) e pascal....
A dire la verità era C++, ma praticamente non abbiamo mai fatto le classi
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:55   #54
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
da noi se qualcuno si azzardava a usare il goto il prof gli staccava un braccio a morsi
stessa cosa per le variabili globali

comunque per dire la mia.. il goto forse (e dico forse) è utilizzabile quando si ha a che fare con codice di basso livello (OS, driver ecc..) dove il più delle volte abbiamo rinunciato alla leggibilità molto prima di avere introdotto un banalissimo goto.
se parliamo di tutti gli altri casi è un costrutto assolutamente inutile.
il problema è che meno LOC non implica necessariamente che il codice sia più leggibile, anzi io mi aspetterei che oltre una certa soglia diventi meno leggibile.
in ogni caso secondo me il framework .NET è un pochino offuscato da qualche software.. oppure la mente di chi l'ha scritto è offuscata
o magari semplicemente si tratta di ottimizzazioni create in automatico a partire dal sorgente originale
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 09:58   #55
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Quote:
Originariamente inviato da k0nt3 Guarda i messaggi
da noi se qualcuno si azzardava a usare il goto il prof gli staccava un braccio a morsi
stessa cosa per le variabili globali

comunque per dire la mia.. il goto forse (e dico forse) è utilizzabile quando si ha a che fare con codice di basso livello (OS, driver ecc..) dove il più delle volte abbiamo rinunciato alla leggibilità molto prima di avere introdotto un banalissimo goto.
se parliamo di tutti gli altri casi è un costrutto assolutamente inutile.
il problema è che meno LOC non implica necessariamente che il codice sia più leggibile, anzi io mi aspetterei che oltre una certa soglia diventi meno leggibile.
in ogni caso secondo me il framework .NET è un pochino offuscato da qualche software.. oppure la mente di chi l'ha scritto è offuscata
o magari semplicemente si tratta di ottimizzazioni create in automatico a partire dal sorgente originale
Quoto tutto.
Mai vista una label in C#, su nessuno dei miei e degli altrui programmi.
Neanche se ne sente la necessita'.
Quoto praticamente tutto tranne il fatto che sia un costrutto assolutamente inutile. Per me e' addirittura dannoso (non per la velocita' chiaro, ma per la leggibilita').
Si possono fare grandi "danni" anche senza il goto comunque.
__________________
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 13-03-2008, 10:04   #56
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
esatto sono stato troppo buono con il goto
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 10:13   #57
WhiteWolf42
Senior Member
 
L'Avatar di WhiteWolf42
 
Iscritto dal: Aug 2005
Città: Monza
Messaggi: 2073
quoto & aggiungo: oltre alla leggibilità ne perde molto anche la manutenzione e ls sicurezza. I salti incondizionati sono SEMPRE pericolosi.

L'unica eccezione IMHO la si può concepire quando si scrive un driver ... in quel caso le performance sono il punto n°1 ... in tutti gli altri casi: CROCEFISSO IN SALA MENSA !!!
__________________
In Omnia Paratus - Improvvisare, Adattarsi, Raggiungere lo scopo
XboxLive: WhiteWolf56933, PSN: WhiteWolf056933, Steam:WhiteWolf056933
WhiteWolf42 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 10:28   #58
guyver
Bannato
 
L'Avatar di guyver
 
Iscritto dal: May 2001
Città: Versilia
Messaggi: 1503
allora se un programmatore ha i cosiddetti OO
può usare il goto per velocizzare il codice (vedi linus) se riesce a non fare casini e anche se si perde di leggibilità e manutenzione, in alcuni casi, dove la performance viene prima di tutto può essere accettato..?

una specie di tricks da usare con coscenza e metodo...
guyver è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 10:37   #59
k0nt3
Senior Member
 
Iscritto dal: Dec 2005
Messaggi: 7260
Quote:
Originariamente inviato da guyver Guarda i messaggi
allora se un programmatore ha i cosiddetti OO
può usare il goto per velocizzare il codice (vedi linus) se riesce a non fare casini e anche se si perde di leggibilità e manutenzione, in alcuni casi, dove la performance viene prima di tutto può essere accettato..?

una specie di tricks da usare con coscenza e metodo...
hai deciso di scatenare le ire di cdimauro per caso?
k0nt3 è offline   Rispondi citando il messaggio o parte di esso
Old 13-03-2008, 13:10   #60
mindwings
Senior Member
 
L'Avatar di mindwings
 
Iscritto dal: Dec 2005
Messaggi: 1278
Quote:
Originariamente inviato da guyver Guarda i messaggi
allora se un programmatore ha i cosiddetti OO
può usare il goto per velocizzare il codice (vedi linus) se riesce a non fare casini e anche se si perde di leggibilità e manutenzione, in alcuni casi, dove la performance viene prima di tutto può essere accettato..?

una specie di tricks da usare con coscenza e metodo...
quei tricks rendono il codice poco comprensibile ad altre persone...
Anche a distanza di tempo dubito che una persona si ricordi il perchè di un salto...(incondizionato)
__________________
Non esistono grandi uomini, solo grandi ambizioni , realizzate da qualcuno che si è alzato dalla sedia per realizzarle!
mindwings è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione vivo X300 Pro: è ancora lui il re della fotografia mobile, peccato per la batteria Recensione vivo X300 Pro: è ancora lui il...
Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'' per spingere gli handheld gaming PC al massimo Lenovo Legion Go 2: Ryzen Z2 Extreme e OLED 8,8'...
AWS re:Invent 2025: inizia l'era dell'AI-as-a-Service con al centro gli agenti AWS re:Invent 2025: inizia l'era dell'AI-as-a-Se...
Cos'è la bolla dell'IA e perché se ne parla Cos'è la bolla dell'IA e perché se...
BOOX Palma 2 Pro in prova: l'e-reader diventa a colori, e davvero tascabile BOOX Palma 2 Pro in prova: l'e-reader diventa a ...
Un gruppo di ladri ha usato Google Maps ...
Apple non si fida di Samsung per la real...
Windows 11: un nuovo driver nativo mette...
Vi hanno regalato buoni Amazon? Intanto ...
Via acari, polvere e sporco da materassi...
Cuffie Beats in super offerta su Amazon,...
Xbox Cloud Gaming arriva su Amazon Fire ...
Un blackout a San Francisco manda in til...
Windows 11 è diventato più...
Apple cambia strategia a causa della cri...
007 First Light: uscita rimandata di due...
Samsung Galaxy A37 e A57: il comparto fo...
DAZN lancia la sua offerta di Natale: My...
Gigabyte fa marcia indietro? Sparito il ...
Alcuni rivenditori giapponesi bloccano l...
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:31.


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