Et si on veut, pour des raison de performances, ne pas initialiser la valeur dans le constructeur mais plus tard?
par exemple (trivial, peu utile, mais pour démontrer un cas d’intérêt d'une variable non définie à l'init) :
int64_t value;
bool valueIsValid;
constructeur
{
valueIsValid=false;
//value=0; //Inutile, ne pas initialiser
}
void set (int64_t newValue)
{
value=newValue;
valueIsValid=true;
}
int64_t get ()
{
if (!valueIsValid) throw();
return value;
}
En C/C++, on peut faire en rapide, en Java comment on fait rapide si le compilo rajoute une initialialisation inutile et consommatrice de cycles? C'est un exemple bateau qui consomme peu, mais parfois quand c'est appelé 1000 milliard de fois, c'est du temps gagné.
Bref, plus je lis sur Java, plus j'ai une frustration sur l'optimisation de vitesse... Et je comprend de mieux en mieux pourquoi les programmes Java que j'ai pu avoir à sûbir ont besoin d'une machine de guerre en CPU, sans parler du garbage collector qui fait exploser le besoin de RAM. (Après, Sun était vendeur de machines, donc ça vallait le coup de filer un langage qui consomme...)
[^] # Re: Chacun son style
Posté par Zenitram (site web personnel) . En réponse à la dépêche Naissance d'un géant : Java. Évalué à -1.
Et si on veut, pour des raison de performances, ne pas initialiser la valeur dans le constructeur mais plus tard?
par exemple (trivial, peu utile, mais pour démontrer un cas d’intérêt d'une variable non définie à l'init) :
int64_t value;
bool valueIsValid;
constructeur
{
valueIsValid=false;
//value=0; //Inutile, ne pas initialiser
}
void set (int64_t newValue)
{
value=newValue;
valueIsValid=true;
}
int64_t get ()
{
if (!valueIsValid) throw();
return value;
}
En C/C++, on peut faire en rapide, en Java comment on fait rapide si le compilo rajoute une initialialisation inutile et consommatrice de cycles? C'est un exemple bateau qui consomme peu, mais parfois quand c'est appelé 1000 milliard de fois, c'est du temps gagné.
Bref, plus je lis sur Java, plus j'ai une frustration sur l'optimisation de vitesse... Et je comprend de mieux en mieux pourquoi les programmes Java que j'ai pu avoir à sûbir ont besoin d'une machine de guerre en CPU, sans parler du garbage collector qui fait exploser le besoin de RAM. (Après, Sun était vendeur de machines, donc ça vallait le coup de filer un langage qui consomme...)