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

Delphi Discussion :

[Delphi 10.4.2] limite des 2 Go


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 097
    Par défaut [Delphi 10.4.2] limite des 2 Go
    Bonjour,

    Je compile un programme qui a besoin de créer un BITMAP qui fasse 32768 X 16384 pixels, pour un besoin trés trés spécifique.

    Je compile en 64 bits sur une machine qui a 32 Go de RAM.

    Si je regarde la valeur max autoriser, Delphi me renvoi 65535 (soit $FFFFF).

    Hors mon image reste dans la limite maxi autoriser, sauf que dés que cela dépasse les 2 Go de mémoire, le .create, plante.

    Si je redéfini mon image a 32767 X 16383, la pas de soucis, le bitmap ce crée et je peux le sauver dans un PNG.

    Ma question, est: y'a t'il une option dans Delphi pour dépasser cette limite des 2 Go en mode 64 bits (qui, il me semblait n'était que pour la version 32 bits) ?

  2. #2
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 097
    Par défaut
    J'ajoute qu'avant le Application.Initialize, j'ai rajouté ceci a mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      GlobalUseDX       := False;
      GlobalUseDirect2D := False;

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    dans d'autres langages que Delphi, j'irais voir du côté de gcAllowVeryLargeObjects. Est-ce que cela a cours en Delphi ? Je ne sais pas.
    Cordialement. Gilles

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 093
    Par défaut
    Sinon Paint 32767 X 16383, il passe mais 32768 X 16384 le fait planter ... bon je n'ai que 8Go de RAM dont 5 déjà occupé avant même de lancer Paint
    EDIt: il peut le sauvegarder mais pas le recharger
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    alors il est possible d'étendre la mémoire avec {$SetPEFlags IMAGE_FILE_LARGE_ADDRESS_AWARE} mais il y a quelques restrictions
    http://docwiki.embarcadero.com/RADSt...a_m%C3%A9moire
    notamment ça ne permet à priori pas d'avoir un bloc mémoire de 2Go

    après ça me rappelle l'époque de Delphi 1 limité à 64Kb, à l'époque j'avais fait un composant GIF qui travaillait sur plusieurs zones mémoires car j'arrivais très vite aux limites du système...j'ai supprimé mon composant à une époque où un brevet interdisait l'usage légale du format GIF...je ne sais pas si je l'ai encore quelque part

    donc je ne connais pas ton besoin mais je doute que tu ne puisses pas t'en sortir avec une mémoire partitionnée en éléments de plus petite taille...même si au final tu stockes tout cela dans un bitmap sur disque.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre chevronné Avatar de der§en
    Homme Profil pro
    Bretagne
    Inscrit en
    Septembre 2005
    Messages
    1 097
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Bretagne
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 097
    Par défaut
    Merci, j’ai entre-temps essayé le flag IMAGE_FILE_LARGE_ADDRESS_AWARE sans que cela résolve mon PB.

    pour test, j’ai réussi à créer un TBitmap en 65535 X 8191 et sauvé dans un PNG, et je l’ai ouvert dans Paint.NET

    Donc, tant que l’on reste dans la limite des 2 Go, on est bon.

    cela n’arrange pas mon affaire, c’est étrange cette limite des 2Go en mode 64 bits.

    impardonnable oubli, j’utilise FireMonkey sur ce projet.

  7. #7
    Membre émérite Avatar de sergio_is_back
    Homme Profil pro
    Consultant informatique industrielle, développeur tout-terrain
    Inscrit en
    Juin 2004
    Messages
    1 188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Consultant informatique industrielle, développeur tout-terrain
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 188
    Par défaut
    Citation Envoyé par der§en Voir le message
    Bonjour,

    Je compile un programme qui a besoin de créer un BITMAP qui fasse 32768 X 16384 pixels, pour un besoin trés trés spécifique.

    Je compile en 64 bits sur une machine qui a 32 Go de RAM.

    Si je regarde la valeur max autoriser, Delphi me renvoi 65535 (soit $FFFFF).

    Hors mon image reste dans la limite maxi autoriser, sauf que dés que cela dépasse les 2 Go de mémoire, le .create, plante.

    Si je redéfini mon image a 32767 X 16383, la pas de soucis, le bitmap ce crée et je peux le sauver dans un PNG.

    Ma question, est: y'a t'il une option dans Delphi pour dépasser cette limite des 2 Go en mode 64 bits (qui, il me semblait n'était que pour la version 32 bits) ?
    Après un rapide coup d'oeil sur internet c'est pas forcément du coté de Delphi que cela pose problème, il semble que la taille d'un format bitmap soit limité sous Windows à 2147483647 octets (2 Go)
    Et la largeur (ou la hauteur) ne peut en aucun cas dépasser 30000 pixels
    Il te faudra utiliser un autre format d'image

    Il semble que le format PNG peut monter jusqu’à 4GO sans limite de hauteur ou de largeur (à condition de rester dans la limite de 4GO bien sur)

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/09/2005, 16h54
  2. [MFC] Limitation des CString
    Par Aradesh dans le forum MFC
    Réponses: 2
    Dernier message: 15/04/2005, 10h40
  3. Limite des smtp
    Par silef dans le forum Serveurs (Apache, IIS,...)
    Réponses: 3
    Dernier message: 27/03/2005, 23h49
  4. Réponses: 8
    Dernier message: 17/02/2005, 09h05
  5. Limite des GENERATORS
    Par Débéa dans le forum Débuter
    Réponses: 5
    Dernier message: 24/07/2003, 13h05

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