IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

[JAVA] Travailler avec de grands tableaux


Sujet :

Langage Java

  1. #1
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Par défaut [JAVA] Travailler avec de grands tableaux
    Bonjour,

    Je suis en train d'implémenter une fonction de hashage sous Java. La particularité de cette fonction est qu'elle nécessite l'utilisation d'une très grosse matrice (21760 lignes pour 400 colonnes, les valeurs étant binaires 0 ou 1, ce qui représente environ 1 Moctet). Pour pouvoir travailler avec cette matrice, je comptais la définir dans une classe contenant uniquement un tableau 2D statique avec cette matrice. Le problème est que lors de la compilation, j'obtiens l'erreur "code too large". Il semblerait en effet que le fichier java d'environ 3Mo ainsi créé dépasse une limitation fixée à 64 Ko par classe (ou méthode, ou je ne sais quoi) par java (lorsque je réduis considérablement la taille de la matrice, la compilation est acceptée). Etant donné que je ne peux pas compiler, l'utilisation d'options comme -Xmx -Xms me semble par ailleurs superflue.
    Je voudrais donc savoir si quelqu'un avait une idée pour travailler avec ce genre de très grands tableaux. Ce dont j'ai besoin au niveau des opérations, c'est de pouvoir ensuite effectuer des XOR sur plusieurs lignes de façon efficace.

    Voici une partie de la classe en question pour vous donner une idée. J'utilise un tableau de int sous forme hexa pour représenter des blocs de 32 bits. Seul le nombre de ligne est beaucoup plus important en réalité, et conduit à l'erreur:"code too large". (Remarquez que dans le dernier bloc int de chaque ligne 16 bits sont superflus)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    public class MiniTableau
    {
    	public static int t[][]=
    	{
    		{0xa4033027,0xec7d8368,0x0b4eb5eb,0xa1409450,0x31a02954,0x9f2ac0d1,0x342509c8
    		,0x9668da91,0xf8ffb6ca,0xdfd4c606,0x670f3c83,0x9d66dd13,0xf88b54c6},
     
    .....
    		,{0xeecd2c33,0x0e9724a5,0x1473a5bf,0xe644d1de,0x5fdd98dc,0xe12ff0a2,0x5d58d603
    		,0x824a517c,0xb1a10148,0x5cf3b072,0x032f32d2,0x6673818a,0x8ba3401c},
    		{0xc6b7645f,0xdeab6cef,0x0d9ff76a,0x8b31e145,0xa450a520,0x0538a96b,0xca59e829
    		,0x6013481b,0xe4053927,0x55148e6c,0x5eefaff3,0xf60793c3,0x99ce2b37},
    		{0x7998d82f,0xc459dcc8,0xc848e5d4,0x239d3638,0xfb1aba4f,0x406ab06f,0x6776ef3c
    		,0x696c9a4e,0x85889146,0x421f4dab,0xfab3e764,0xe9ceaf27,0xfc72a834},
    		{0x13ba04ac,0xc8775192,0x0933c794,0x2ab416df,0x80d072c8,0xecfd348f,0x2e723a5b
    		,0x1bbcfbfa,0x39ef696a,0x897ea889,0x3385a44a,0x34cf97aa,0x6321d04a},
    		{0x42cadf3a,0x8337b78f,0x79960a45,0x25c6f6de,0x95a60a48,0x64b62c47,0x918ebb5c
    		,0xd3f8090f,0xbdc5c3ef,0xca3ea654,0xef29acfb,0xa3839b30,0xef98dddd},
    		{0xe142a473,0x36513f2f,0xeb81812b,0xdf82ba5c,0x5df2cc8c,0xc2bd27c8,0x40f064fd
    		,0xd11093b6,0x5b42294c,0x0f16a25f,0x9ff1d063,0x203155d4,0xd0672cf1}
    	};
    }
    J'attends vos idées
    Merci d'avance

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2007
    Messages
    572
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 572
    Par défaut
    Pourquoi ne lis tu pas le tableau à partir d'une fichier ?

  3. #3
    Membre averti
    Inscrit en
    Juillet 2005
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 19
    Par défaut
    Merci beaucoup, c'est ce que je viens finalement de faire. Je trouve juste un peu bizarre que l'on soit obligé de faire une lecture "a la main" pour un tableau qui au final occupera la même place en mémoire.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. travailler avec des tableaux
    Par romain1986 dans le forum C
    Réponses: 2
    Dernier message: 30/04/2007, 13h42
  2. Réponses: 9
    Dernier message: 06/04/2007, 19h45
  3. Travailler avec un fichier XML de grande taille
    Par Jayme65 dans le forum Flash
    Réponses: 9
    Dernier message: 29/05/2006, 17h09
  4. Réponses: 8
    Dernier message: 09/03/2006, 17h48
  5. Documentation sur la manière de travailler avec le XML en java
    Par DelPiero62 dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 26/03/2003, 09h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo