Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3360 connectés 

 

Sujet(s) à lire :
    - Who's who@Programmation
 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  1131  1132  1133  ..  26992  26993  26994  26995  26996  26997
Auteur Sujet :

[blabla@olympe] Le topic du modo, dieu de la fibre et du monde

n°506207
chrisbk
-
Posté le 03-09-2003 à 11:25:00  profilanswer
 

Reprise du message précédent :

This also means that the bytecode that is generated by the javac compiler is not any better than the code that you write. For example, if you write a loop that contains an invariant, the invariant will not be removed from the loop by the javac compiler. Programmers are used to compilers from other languages that clean up badly written code. Unfortunately, javac does not do this. More importantly, the javac compiler does not perform simple optimizations like loop unrolling, algebraic simplification, strength reduction, and others. To get these benefits and other simple optimizations, the programmer must perform them on the Java source code and not rely on the javac compiler to perform them. There are many techniques you can use to make the Java compiler generate faster and smaller bytecode. Unfortunately, until Java compilers perform them, you must implement them yourself to achieve their benefits


 
 
[:mlc]
 
Bon ca date de deux ans fodrait que je trouve un truc un tantinet plus recent
 

mood
Publicité
Posté le 03-09-2003 à 11:25:00  profilanswer
 

n°506208
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:25:07  profilanswer
 

LetoII a écrit :


 
 :non: C pas stupide de fusionner des chaînes constantes identiques.


Code :
  1. roger  = "kookoo";
  2. roger2 = "kookoo";


Et elles sont où les constantes là ?
[:shakalagoons]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506209
darklord
You're welcome
Posté le 03-09-2003 à 11:27:14  profilanswer
 

mareek a écrit :


Code :
  1. roger  = "kookoo";
  2. roger2 = "kookoo";


Et elles sont où les constantes là ?
[:shakalagoons]


 
String immutability tu connais? :D


---------------
Just because you feel good does not make you right
n°506211
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:28:19  profilanswer
 

DarkLord a écrit :


 
String immutability tu connais? :D


non :o
(j'aurais pas du rentrer dans ce débat sur le java moi qui n'y connais rien [:neowen])


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506213
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:29:18  profilanswer
 

mareek a écrit :


Code :
  1. roger  = "kookoo";
  2. roger2 = "kookoo";


Et elles sont où les constantes là ?
[:shakalagoons]


 
"kookoo" pour moi est une chaîne constante. Elle pourra jamais être modifiée.


---------------
Le Tyran
n°506214
chrisbk
-
Posté le 03-09-2003 à 11:29:52  profilanswer
 

Cai pourry java :O
On peut pas avoir plus de 65536 constantes differentes par classe [:ddr555]

n°506219
chrisbk
-
Posté le 03-09-2003 à 11:31:19  profilanswer
 

kadreg a écrit :


 
java, sapu :o


 
pour l'absence d'optim la ca s'approche quand meme un peu du foutage de gueule :D Mais  bon, comme dit, le document date de 2001...

n°506220
skeye
Posté le 03-09-2003 à 11:31:23  profilanswer
 

LetoII a écrit :


 
"kookoo" pour moi est une chaîne constante. Elle pourra jamais être modifiée.


dépend comment l'affectation est foutue dans le compilo... [:skeye]

n°506221
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:31:40  profilanswer
 

LetoII a écrit :


 
"kookoo" pour moi est une chaîne constante. Elle pourra jamais être modifiée.


bah faut le dire [:spamafote]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506222
chrisbk
-
Posté le 03-09-2003 à 11:33:26  profilanswer
 

chrisbk a écrit :


 
pour l'absence d'optim la ca s'approche quand meme un peu du foutage de gueule :D Mais  bon, comme dit, le document date de 2001...


 
(notez que je suis aussi supris que personne ait eu l'idee de faire un truc relisant le bytecode et l'optimisant)

mood
Publicité
Posté le 03-09-2003 à 11:33:26  profilanswer
 

n°506223
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:34:13  profilanswer
 

skeye a écrit :


dépend comment l'affectation est foutue dans le compilo... [:skeye]  


 :heink:  
 
nan, je rappel que c du java


---------------
Le Tyran
n°506224
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:34:29  profilanswer
 

chrisbk a écrit :

(notez que je suis aussi supris que personne ait eu l'idee de faire un truc relisant le bytecode et l'optimisant)


les javamens n'ont que faire de l'optimisation jeune padawan, tout ça c'est le boulot de la JVM :o


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506225
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:34:55  profilanswer
 

LetoII a écrit :


 :heink:  
 
nan, je rappel que c du java


On peut pas modifier des chaines en java ? :??:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506226
darklord
You're welcome
Posté le 03-09-2003 à 11:36:45  profilanswer
 

mareek a écrit :


On peut pas modifier des chaines en java ? :??:  


 
[:rofl2]


---------------
Just because you feel good does not make you right
n°506227
chrisbk
-
Posté le 03-09-2003 à 11:36:57  profilanswer
 

mareek a écrit :


les javamens n'ont que faire de l'optimisation jeune padawan, tout ça c'est le boulot de la JVM :o


 
Je suis pas d'accord dans le sens ou il y a des JVM pourries qui traine de ci de la (on me fera pas croire que les JVM pour pda & cie sont super optimisées a coup de JIT de pointe)
 
Optimiser le bytecode, c'est enlever aussi une partie du boulot a la JVM, et ca aide les JVM bas de gamme. (et y restera tjs plein de boulot a la JVM pour rendre ca encore plus performant)

n°506228
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:37:05  profilanswer
 

mareek a écrit :


On peut pas modifier des chaines en java ? :??:  


Nan, toute modification entraine la créatino d'une nouvelle chaîne, ça touche jamais la chaîne initiale


---------------
Le Tyran
n°506229
drasche
Posté le 03-09-2003 à 11:38:48  profilanswer
 

mareek a écrit :

On peut pas modifier des chaines en java ? :??:  


t'as déjà vu un langage (répandu) qui ne permet pas de modifier des chaînes? :heink:

n°506231
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:38:59  profilanswer
 

chrisbk a écrit :


 
Je suis pas d'accord dans le sens ou il y a des JVM pourries qui traine de ci de la (on me fera pas croire que les JVM pour pda & cie sont super optimisées a coup de JIT de pointe)
 
Optimiser le bytecode, c'est enlever aussi une partie du boulot a la JVM, et ca aide les JVM bas de gamme. (et y restera tjs plein de boulot a la JVM pour rendre ca encore plus performant)
 


 
T'as qu'à pas programmer avec tes pieds  :o


---------------
Le Tyran
n°506232
skeye
Posté le 03-09-2003 à 11:39:01  profilanswer
 

LetoII a écrit :


 :heink:  
 
nan, je rappel que c du java


J' en sais rien j'ai aucune notion du fonctionnement du java à ce niveau...[:skeye]
Mais perso le fait de faire  
roger  = "kookoo";  
roger2 = "kookoo";
et de se retrouver avec une seule chaine en mémoire me choque...
[edit]
J'ai lu les réponses, mais ca me parait tordu qd même comme façon de faire... :heink:


Message édité par skeye le 03-09-2003 à 11:40:38
n°506233
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:39:23  profilanswer
 

drasche a écrit :


t'as déjà vu un langage (répandu) qui ne permet pas de modifier des chaînes? :heink:


 
C, c++


---------------
Le Tyran
n°506235
darklord
You're welcome
Posté le 03-09-2003 à 11:39:36  profilanswer
 

LetoII a écrit :


Nan, toute modification entraine la créatino d'une nouvelle chaîne, ça touche jamais la chaîne initiale


 
StringBuffer permet de contourner ce problème BTW :o


---------------
Just because you feel good does not make you right
n°506237
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:40:06  profilanswer
 

j'ai un peu de mal à faire la part entre le troll et l'orc sur cette page :pt1cable:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506238
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:41:15  profilanswer
 

drasche a écrit :


t'as déjà vu un langage (répandu) qui ne permet pas de modifier des chaînes? :heink:


ben non, mais ce que dit leto n'est pas clair (ou alors il a abusés de substances ilicites ou à consommer avec modération) :o


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506239
darklord
You're welcome
Posté le 03-09-2003 à 11:41:23  profilanswer
 

skeye a écrit :


J' en sais rien j'ai aucune notion du fonctionnement du java à ce niveau...[:skeye]
Mais perso le fait de faire  
roger  = "kookoo";  
roger2 = "kookoo";
et de se retrouver avec une seule chaine en mémoire me choque...


 
bin c'est la même information. Et comme c'est immuable aucune des réferences ne sera capable de la changer. Donc au contraire c'est totalement logique (c'est pas comme si l'objet qui a la référence roger pouvait ajouter un s à la fin et que ca change l'objet qui a la référence vers roger2 sans qu'il le sache. Si ca arrive, roger aura une référence vers une nouvelle string "kookoos" tandis que roger2 gardera l'ancienne référence


---------------
Just because you feel good does not make you right
n°506240
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:41:44  profilanswer
 

skeye a écrit :


J' en sais rien j'ai aucune notion du fonctionnement du java à ce niveau...[:skeye]
Mais perso le fait de faire  
roger  = "kookoo";  
roger2 = "kookoo";
et de se retrouver avec une seule chaine en mémoire me choque...
[edit]
J'ai lu les réponses, mais ca me parait tordu qd même comme façon de faire... :heink:  


[:plusun]


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506241
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:42:55  profilanswer
 

skeye a écrit :


J' en sais rien j'ai aucune notion du fonctionnement du java à ce niveau...[:skeye]
Mais perso le fait de faire  
roger  = "kookoo";  
roger2 = "kookoo";
et de se retrouver avec une seule chaine en mémoire me choque...


 
Ben moi ça me fait chier de devoir déclarer qqpart un
static final String truc = " ";
 
Pour pas avoir une nouvelle chaine à chaque fois que j'écrit " " dans mon prog pour faire un s1 + " " + s2


---------------
Le Tyran
n°506242
darklord
You're welcome
Posté le 03-09-2003 à 11:42:59  profilanswer
 


 
bin non :o  
z'avez rien compris. Prenez la situation à l'envers vous allez comprendre :o


---------------
Just because you feel good does not make you right
n°506243
skeye
Posté le 03-09-2003 à 11:43:09  profilanswer
 

DarkLord a écrit :


 
bin c'est la même information. Et comme c'est immuable aucune des réferences ne sera capable de la changer. Donc au contraire c'est totalement logique (c'est pas comme si l'objet qui a la référence roger pouvait ajouter un s à la fin et que ca change l'objet qui a la référence vers roger2 sans qu'il le sache. Si ca arrive, roger aura une référence vers une nouvelle string "kookoos" tandis que roger2 gardera l'ancienne référence


J'ai bien compris tout ça...mais ca me parait tordu, juste.
On se retrouve à faire des copies de variables en permanence, alors... :ouch:

n°506244
chrisbk
-
Posté le 03-09-2003 à 11:43:18  profilanswer
 

LetoII a écrit :


 
T'as qu'à pas programmer avec tes pieds  :o  


 
ben voyons [:ddr555]
Serait tu en train de me dire que les optims effectués par le compilo servent a rien ? :D
 
T'ecris jamais des trucs genre : roger = 20.0f / 5.5f parce que t'as pas envie de te farcir le calcul ? t encore bien content que le compilo te mouline ca a compile time....visiblement en java t'auras ce calcul tel quel dans le bytecote... Pratique si ta jvm derriere est pas foutu de remarquer qu'elle a pas besoin de calculer ca
 
 

n°506245
drasche
Posté le 03-09-2003 à 11:43:30  profilanswer
 


je suppose que tu parles de constantes? Parce que des chaînes je sais les modifier.

n°506246
darklord
You're welcome
Posté le 03-09-2003 à 11:44:01  profilanswer
 

skeye a écrit :


J'ai bien compris tout ça...mais ca me parait tordu, juste.
On se retrouve à faire des copies de variables en permanence, alors... :ouch:  


 
mais non!!! où tu vois une copie? Si tu veux la chaine kookoos et qu'elle n'existe pas, elle sera crée dans l'espace de la JVM stou :o


---------------
Just because you feel good does not make you right
n°506247
mareek
Et de 3 \o/
Posté le 03-09-2003 à 11:44:08  profilanswer
 

DarkLord a écrit :


 
bin c'est la même information. Et comme c'est immuable aucune des réferences ne sera capable de la changer. Donc au contraire c'est totalement logique (c'est pas comme si l'objet qui a la référence roger pouvait ajouter un s à la fin et que ca change l'objet qui a la référence vers roger2 sans qu'il le sache. Si ca arrive, roger aura une référence vers une nouvelle string "kookoos" tandis que roger2 gardera l'ancienne référence


[:mlc]^10 mais c'est pourri
 
Quel est l'intéret de faire des chaines immuables ????????


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°506249
darklord
You're welcome
Posté le 03-09-2003 à 11:44:47  profilanswer
 

mareek a écrit :


[:mlc]^10 mais c'est pourri
 
Quel est l'intéret de faire des chaines immuables ????????


 
quel est l'intéret d'avoir 10.000 fois la String " " dans ta JVM alors qu'une référence suffit?


---------------
Just because you feel good does not make you right
n°506251
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 03-09-2003 à 11:45:24  profilanswer
 

mareek a écrit :


ben non, mais ce que dit leto n'est pas clair (ou alors il a abusés de substances ilicites ou à consommer avec modération) :o


Nan, en fait en Java, une String est immuable, ce qui signifie qu'une fois créée, elle ne peut être modifiée.
Genre si tu fais :
String s1 = "plouf";
String s2 = "graou";
s1 = s1 + s2;
Ba t'auras 3 chaînes en mémoire : "plouf", "graou" et "ploufgraou". L'ancienne s1 sera toujours en mémoire.
Comme dit Darque, StringBuffer permet de s'affranchir de ce problème :
StringBuffer s1 = "plouf";
String s2 = "graou";
s1.append(s2);
=> ne donne que 2 objets en mémoire au lieu de 3. Donc pour les traitements de chaînes en boucle, il est vivement conseillé d'utiliser StringBuffer.


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
n°506253
skeye
Posté le 03-09-2003 à 11:48:05  profilanswer
 

DarkLord a écrit :


 
mais non!!! où tu vois une copie? Si tu veux la chaine kookoos et qu'elle n'existe pas, elle sera crée dans l'espace de la JVM stou :o


Oué, mais si tu veux juste rajouter ton  s à la fin il va te créer une nouvelle chaine où il va recopier ton kookoo  et y rajouter le s...non?  :??:

n°506254
urd-sama
waste of space
Posté le 03-09-2003 à 11:48:16  profilanswer
 

pause [:youpi]

n°506256
LetoII
Le dormeur doit se réveiller
Posté le 03-09-2003 à 11:48:31  profilanswer
 

DarkLord a écrit :


 
quel est l'intéret d'avoir 10.000 fois la String " " dans ta JVM alors qu'une référence suffit?


 
Tant que je tien qqn qui comprend ce que je dit, au final ça les fusionnes ou aps c foutus chaines?


---------------
Le Tyran
n°506257
darklord
You're welcome
Posté le 03-09-2003 à 11:48:38  profilanswer
 


 
:jap:


---------------
Just because you feel good does not make you right
n°506259
darklord
You're welcome
Posté le 03-09-2003 à 11:49:03  profilanswer
 

skeye a écrit :


Oué, mais si tu veux juste rajouter ton  s à la fin il va te créer une nouvelle chaine où il va recopier ton kookoo  et y rajouter le s...non?  :??:  


 
créer une nouvelle chaine avec le s à la fin


---------------
Just because you feel good does not make you right
n°506260
chrisbk
-
Posté le 03-09-2003 à 11:49:08  profilanswer
 

skeye a écrit :


J' en sais rien j'ai aucune notion du fonctionnement du java à ce niveau...[:skeye]
Mais perso le fait de faire  
roger  = "kookoo";  
roger2 = "kookoo";
et de se retrouver avec une seule chaine en mémoire me choque...
[edit]
J'ai lu les réponses, mais ca me parait tordu qd même comme façon de faire... :heink:  


 
je repete :D
 
Java a un constant pool par .class
C'est a dire que si tu as :
 
 
string a = "Pouet"
String b = "kookoo"
 
 
Alors tu auras dans ta constant pool :
 
0 : "pouet"
1 : "kookoo"
 
Quand javac passera sur tes lignes il te transformera ca :
 
ldc 0 ;  // met la constante 0 sur la pile
store a; //met le TOS dans a (bon normalement c'est pas a, mais un int, les variables locales se voient attribuee aussi un index) De plus pour ce qui est type non primitif le type entier doit etre donné (ici java/lang/String; mais on s'en cogne)
 
idem pour la suite
ldc 1
store b;
 
donc si tu as  
 
string a = "Pouet"
String b = "Pouet"
 
tu auras :
ldc 0;
store a;
ldc 0;
store b;
 
Autrement dit tes objets pointeront deux fois vers la meme ref
 
 
 
 
 
 
 

n°506261
darklord
You're welcome
Posté le 03-09-2003 à 11:49:27  profilanswer
 

LetoII a écrit :


 
Tant que je tien qqn qui comprend ce que je dit, au final ça les fusionnes ou aps c foutus chaines?


 
 :heink:


---------------
Just because you feel good does not make you right
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  1131  1132  1133  ..  26992  26993  26994  26995  26996  26997

Aller à :
Ajouter une réponse
 

Sujets relatifs
Plus de sujets relatifs à : [blabla@olympe] Le topic du modo, dieu de la fibre et du monde


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)