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

C# Discussion :

taille maximum d'un String ?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut taille maximum d'un String ?
    bonjour,

    je place dans un String le contenu d'un fichier avant de l'analyser, hors avec un gros fichier (131Mo) ca plante : System.OutOfMemoryException

    j'aimerais donc savoir la taille maximum autorisé dans un String afin de faire un test avant insertion.
    impossible de trouver cette info quelque part ...

    merci

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Par défaut
    Vu que Length est un Int32, ça doit probablement être 2 147 483 647.

    Dans les faits, c'est pas le cas . Je viens de tester et ça a juste planté Windows 7.

    J'ai essayé 200 000 000 et ça passe (environ 300 Mo utilisé).

    En tout cas, je te conseille plutôt une lecture séquentielle. Il y a vraiment obligation de charger tout le fichier pour le lire ?

  3. #3
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    oui, j'ai déja testé la valeur de Length 2 147 483 648 et meme résultat

    mon fichier de 131Mo qui fait planter string fait 141 004 911 octets donc la valeur acceptable est inférieur

    -- edit --
    je suis sur XP 32bits, peut être que sur W7 la taille maxi d'une string est + grande ?
    non, tout le fichier doit être chargé pour y faire passer les Regexp

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Question intéressante: ll semblerait en effet que rien ne soit prévu pour la gestion de regexp sur les flux/fichiers.
    Par contre, je ne sais pas ce que tu veux faire exactement, mais si tu connais la taille max de la/les chaine(s) à chercher/remplacer, tu peux t'en sortir en créant un algo qui balaie séquentiellement le fichier avec une fenêtre de recherche 2x plus grande que ta chaine max, et tu devrais t'en sortir sans tout charger en mémoire en un bloc.

  5. #5
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    c'est une appli pour moi, faut qu'elle soit trés performante -> recherche et remplacement de chaine dans des fichiers, récursivement ou non en partant d'un répertoire.

    donc je peux très bien me donner une limite sur la taille des fichiers pour ne pas m'embêter.
    utiliser un flux qui chargerait paquet par paquet et faire la recherche juste sur le paquet en cours règlerait le problème mais je pense que ca risque de faire descendre les performances.

    bizarre que la taille maximum d'un String ne soit pas une valeur qu'on puisse récupérer/lire quelque part.

  6. #6
    Membre émérite
    Homme Profil pro
    Développeur / architecte
    Inscrit en
    Juillet 2009
    Messages
    473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur / architecte

    Informations forums :
    Inscription : Juillet 2009
    Messages : 473
    Par défaut
    Suis pas sûr que ça soit moins performant que d'allouer 100Mo d'un seul coup. Reste plus qu'à faire le test

Discussions similaires

  1. Taille maximum des champs courants
    Par sabbish dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 29/11/2013, 13h48
  2. Taille max pour un String
    Par arasium dans le forum Langage
    Réponses: 9
    Dernier message: 16/06/2006, 08h14
  3. taille maximum d'un div
    Par Anduriel dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 13/05/2005, 21h32
  4. Taille maximum de tableau en Delphi
    Par yannick37 dans le forum Langage
    Réponses: 5
    Dernier message: 03/03/2004, 13h18
  5. [Tableau] taille maximum
    Par vasilov dans le forum C
    Réponses: 15
    Dernier message: 01/08/2003, 10h52

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