Il 18/01/2012 19:24, LudovicoVan ha scritto:
> "Soviet_Mario" wrote in message
> news:4f12afa8$0$1383$4faf...@reader2.news.tin.it...
>
>> serve per emulare una Union C-style
>
> A parte che quegli attibuti ecc. sono pensati per COM interop, perche'
> mai vuoi emulare una enum C-style? Di nuovo 1 byte da recuperare ogni
> miliardo?
no ... per uno scopo in effetti pensato male. Ossia, volevo
rinforzare il fatto che un oggetto potesse avere un unico
stato interno.
Ma ho fatto un errore marchiano, perché semanticamente i
campi esistono a prescindere dalla loro corretta valorizzazione.
Poi mi sono accorto che la presenza di un valore (tipo un
"long") non necessariamente produceva una condizione di
errore in un eventuale "single" con lo stesso indirizzo
fisico, tantomeno era vero il contrario, dato che non ci
sono condizioni di errore in un long (salvo forse un MSB a
1, segno negativo, e gli altri bit zero ... ma non sono
sicuro che dia un errore, mentre non tutti i long mappano su
single di senso compiuto (tipo hai i bit di mantissa zero e
di esponente nonzero, o viceversa, o per caso becchi pattern
specifici tipo +INF o NaN e così via).
Quindi a ben vedere la presenza FISICA di un solo dato alla
volta, non mi rafforzava per niente l'accessibilità logica,
e tutto si deve poggiare cmq sul bit field.
Il risparmio di spazio ci può stare lo stesso, perché ho
oggetti molto difformi da piazzare dentro (ma non ricordo se
dovevo copiarli o mi bastava linkarli con una reference).
> E la complessita' del codice e i byte e cicli di CPU che ti
> perdi con quella?
>
> Poi, piu' in generale: non si ottimizza mai alla cieca o a naso, ma solo
in realtà non sto ottimizzando, specie per la velocità (un
filino allo spazio ci guardo, ma non tanto).
Cerco solo di tenere le fila di una cosa che mi sta
sfuggendo di mano.
> a fronte di un significativo benchmark e della relativa analisi dei
> colli (di bottiglia). Per il resto, il coedice deve essere *leggibiole*,
concordo pienamente ! Effettivamente sto seguendo la prima
massima di Stroustrup : make it work, before you make it
faster (e sono lontano ancora dalla seconda : and KEEP it
work, while you make it faster)
> che e' davvero l'unica cosa che conta (ovvero almeno al 99.9%).
Sto faticandoci a capirmi, in effetti, seppure è davvero lo
sforzo maggiore.
ciao
Soviet
> -LV
>