Quel est la meilleure façon pour stocker un entier [0, 65535] dans un e variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisa tion.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'additio n de 32767
merci
Olivier Demaine
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut infirmer ou confirmer ?
olivier
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCE7A66.CB49%bcausse@lepoint.tm.fr...
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une
variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que :
pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci
--
Bruno Causse
http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de
performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de
int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut infirmer ou confirmer ?
olivier
Bruno
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
dans l'article 3fa8fd26$0$6980$7a628cd7@news.club-internet.fr, Olivier
Demaine à olivier.demaine@club-internet.fr a écrit le 05/11/2003 14:36 :
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCE7A66.CB49%bcausse@lepoint.tm.fr...
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une
variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que :
pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci
--
Bruno Causse
http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de
performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de
int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000;
int maxFeatures = 47;
short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :(
--
Bruno Causse
http://perso.wanadoo.fr/othello
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
Bruno
dans l'article boaqke$rf0$, Emmanuel Bourg à a écrit le 05/11/2003 13:52 :
un char ?
????????? -- Bruno Causse http://perso.wanadoo.fr/othello
dans l'article boaqke$rf0$1@reader1.imaginet.fr, Emmanuel Bourg à
smanux@lfjr.net a écrit le 05/11/2003 13:52 :
un char ?
?????????
--
Bruno Causse
http://perso.wanadoo.fr/othello
dans l'article 3fa90240$0$10432$, Nicolas Repiquet à a écrit le 05/11/2003 15:00 :
"Bruno" a écrit dans le message news: BBCEBDF7.CBA7%
un char ?
???????
Ben les char en java c'est bien des 16bit unsigned =) C'est pas bo mais bon...
-- Nicolas Repiquet
top, :-)
merci
-- Bruno Causse http://perso.wanadoo.fr/othello
Olivier Demaine
"Bruno" a écrit dans le message news: BBCEBDD8.CBA6%
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
public class Tableau { private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z) { return array_[x][y][z]; } }
devient
public class Tableau { private int[] array_=new int[3*4*5];
public int get(int x,int y, int z) { return array_[x+y*4+z*(4*5)]; } }
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCEBDD8.CBA6%bcausse@lepoint.tm.fr...
dans l'article 3fa8fd26$0$6980$7a628cd7@news.club-internet.fr, Olivier
Demaine à olivier.demaine@club-internet.fr a écrit le 05/11/2003 14:36 :
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCE7A66.CB49%bcausse@lepoint.tm.fr...
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une
variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) =>
optimisation.
je ne demande si il existe une solution + efficace que :
pendant le stockage soustraire 32767 et pendant l'utilisation
l'addition
de
32767
merci
--
Bruno Causse
http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de
performances à l'execution car il y un cast implicitede short vers int,
de
plus je crois que les byte et short sont stocké en mémoire sous forme de
int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un
peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000;
int maxFeatures = 47;
short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :(
--
Bruno Causse
http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et
d'effectuer les calculs d'index nécessaire.
public class Tableau
{ private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z)
{ return array_[x][y][z];
}
}
devient
public class Tableau
{ private int[] array_=new int[3*4*5];
public int get(int x,int y, int z)
{ return array_[x+y*4+z*(4*5)];
}
}
Cela améliore les performances et réduit la consommation mémoire. Les
tableaux à dimensions multiples doivent être utilisés, si et seulement si,
chaque ligne peut avoir une taille différente.
"Bruno" a écrit dans le message news: BBCEBDD8.CBA6%
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
public class Tableau { private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z) { return array_[x][y][z]; } }
devient
public class Tableau { private int[] array_=new int[3*4*5];
public int get(int x,int y, int z) { return array_[x+y*4+z*(4*5)]; } }
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
Bruno
dans l'article 3fa90463$0$6967$, Olivier Demaine à a écrit le 05/11/2003 15:07 :
"Bruno" a écrit dans le message news: BBCEBDD8.CBA6%
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
public class Tableau { private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z) { return array_[x][y][z]; } }
devient
public class Tableau { private int[] array_=new int[3*4*5];
public int get(int x,int y, int z) { return array_[x+y*4+z*(4*5)]; } }
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
je prefere passer par une ref suplementaire et ne pas calculer d'index.
int[][] array = new int[][];
int[] temp = array[];
pour lister dans une boucle le tableau secondaire sans calcul d'index.
-- Bruno Causse http://perso.wanadoo.fr/othello
dans l'article 3fa90463$0$6967$7a628cd7@news.club-internet.fr, Olivier
Demaine à olivier.demaine@club-internet.fr a écrit le 05/11/2003 15:07 :
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCEBDD8.CBA6%bcausse@lepoint.tm.fr...
dans l'article 3fa8fd26$0$6980$7a628cd7@news.club-internet.fr, Olivier
Demaine à olivier.demaine@club-internet.fr a écrit le 05/11/2003 14:36 :
"Bruno" <bcausse@lepoint.tm.fr> a écrit dans le message news:
BBCE7A66.CB49%bcausse@lepoint.tm.fr...
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une
variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) =>
optimisation.
je ne demande si il existe une solution + efficace que :
pendant le stockage soustraire 32767 et pendant l'utilisation
l'addition
de
32767
merci
--
Bruno Causse
http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de
performances à l'execution car il y un cast implicitede short vers int,
de
plus je crois que les byte et short sont stocké en mémoire sous forme de
int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un
peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000;
int maxFeatures = 47;
short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :(
--
Bruno Causse
http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et
d'effectuer les calculs d'index nécessaire.
public class Tableau
{ private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z)
{ return array_[x][y][z];
}
}
devient
public class Tableau
{ private int[] array_=new int[3*4*5];
public int get(int x,int y, int z)
{ return array_[x+y*4+z*(4*5)];
}
}
Cela améliore les performances et réduit la consommation mémoire. Les
tableaux à dimensions multiples doivent être utilisés, si et seulement si,
chaque ligne peut avoir une taille différente.
je prefere passer par une ref suplementaire et ne pas calculer d'index.
int[][] array = new int[][];
int[] temp = array[];
pour lister dans une boucle le tableau secondaire sans calcul d'index.
dans l'article 3fa90463$0$6967$, Olivier Demaine à a écrit le 05/11/2003 15:07 :
"Bruno" a écrit dans le message news: BBCEBDD8.CBA6%
dans l'article 3fa8fd26$0$6980$, Olivier Demaine à a écrit le 05/11/2003 14:36 :
"Bruno" a écrit dans le message news: BBCE7A66.CB49%
Quel est la meilleure façon pour stocker un entier [0, 65535] dans une variable de type short (int pose un probleme de memoire)?
acces intensif a ce type de variable (indices de tableau) => optimisation.
je ne demande si il existe une solution + efficace que : pendant le stockage soustraire 32767 et pendant l'utilisation l'addition
de
32767
merci -- Bruno Causse http://perso.wanadoo.fr/othello
il me semble que java travail en interne sur des int, d'ou perte de performances à l'execution car il y un cast implicitede short vers int, de
plus je crois que les byte et short sont stocké en mémoire sous forme de int, donc 4 octets, donc pas de gain en mémoire.
je suis sur à 90% de ce que j'avance, mais j'ai 10% de doute, quelqu'un peut
infirmer ou confirmer ?
olivier
non, non
int maxPositions = 2500000; int maxFeatures = 47; short[][] positions = new short[maxPositions][maxFeatures]
mes valeurs appartienent a [0, 59049[
d'ou la question?
ps avec des int je double la taille de positions -> manque de memoire :(
ps2: c'est bien pratique les unsigned :( -- Bruno Causse http://perso.wanadoo.fr/othello
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
public class Tableau { private int[][][] array_=new int[3][4][5];
public int get(int x,int y, int z) { return array_[x][y][z]; } }
devient
public class Tableau { private int[] array_=new int[3*4*5];
public int get(int x,int y, int z) { return array_[x+y*4+z*(4*5)]; } }
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
je prefere passer par une ref suplementaire et ne pas calculer d'index.
int[][] array = new int[][];
int[] temp = array[];
pour lister dans une boucle le tableau secondaire sans calcul d'index.
-- Bruno Causse http://perso.wanadoo.fr/othello
Nicolas Delsaux
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
-- Nicolas Delsaux "J'ai toujours dit qu'il vallait mieux délyophiliser les tardigrades qu'empapaouter les macareux." Jeam Tag
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit
: "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et
d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les
tableaux à dimensions multiples doivent être utilisés, si et seulement si,
chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
--
Nicolas Delsaux
"J'ai toujours dit qu'il vallait mieux délyophiliser les tardigrades
qu'empapaouter les macareux."
Jeam Tag
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
-- Nicolas Delsaux "J'ai toujours dit qu'il vallait mieux délyophiliser les tardigrades qu'empapaouter les macareux." Jeam Tag
Erwan David
Nicolas Delsaux écrivait :
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
J'ai pas de test, mais j'ai une explication.
En java un tableau à n dimensions c'est un tableau à une dimension de tableaux à n-1 dimensions.
Donc pour la consommation mémoire ça va faire plein d'en-têtes de tableaux supplémentaires.
Ensuite l'accès va passer par un tas de aaload/aastore un peu couteux...
Nicolas Delsaux <nicolas.delsaux@online.fr.invalid> écrivait :
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit
: "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou
cubique, il est préférable de ne construire qu'un tableau à une dimension et
d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les
tableaux à dimensions multiples doivent être utilisés, si et seulement si,
chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
J'ai pas de test, mais j'ai une explication.
En java un tableau à n dimensions c'est un tableau à une dimension de
tableaux à n-1 dimensions.
Donc pour la consommation mémoire ça va faire plein d'en-têtes de
tableaux supplémentaires.
Ensuite l'accès va passer par un tas de aaload/aastore un peu couteux...
Le Wed, 5 Nov 2003 15:07:38 +0100, Olivier Demaine s'est levé est s'est dit : "tiens, si j'écrivais aux mecs de fr.comp.lang.java :
Lorsque les tableaux à dimensions multiples ont une forme rectangulaire ou cubique, il est préférable de ne construire qu'un tableau à une dimension et d'effectuer les calculs d'index nécessaire.
Cela améliore les performances et réduit la consommation mémoire. Les tableaux à dimensions multiples doivent être utilisés, si et seulement si, chaque ligne peut avoir une taille différente.
Ah bon ? Tu as un test significatif de ce que tu avances ?
J'ai pas de test, mais j'ai une explication.
En java un tableau à n dimensions c'est un tableau à une dimension de tableaux à n-1 dimensions.
Donc pour la consommation mémoire ça va faire plein d'en-têtes de tableaux supplémentaires.
Ensuite l'accès va passer par un tas de aaload/aastore un peu couteux...