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

GTK+ avec C & C++ Discussion :

Existe t-il un nombre de page maximum pour un notebook ?


Sujet :

GTK+ avec C & C++

  1. #1
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut Existe t-il un nombre de page maximum pour un notebook ?
    Bon bah j'en profites pour poster un autre probleme que je viens de rencontrer :

    Je traite des images, pour chaque image ouverte je crée une nouvelle page de notebook (au départ c'était pour faire du cas par cas, donc ca s'avérait être la meilleure option)

    J'ai depuis ajouté une option ouvrir fichier, et la pour tester un peu les limites de mon programme, j'ai tenté d'ouvrir un fichier contenant 300 photos +
    et vers 200 il à planté en me sortant une erreur du style

    "GTK WINDOW : nombre d'éléments max atteint, place alouée dépassée"

    (ca à fait planter l'intégrité de mon PC, je pouvais pas me balader dans la console )

    Enfin voila ma première réaction est de penser qu'il y'a un nombre max de pages dans un notebook, ou tout du moins une taille max, avant que GTK ne soit submergé et ne supporte plus ?

    Sinon c'est que mon code est pas assez propre en terme de libération mémoire, mais je peux pas libérer quoi que ce soit la

    Bon si quelqu'un à déjà rencontré un problème du genre, ou à la moindre petite idée, merci à vous !

    Sinon, j'irais faire un tour complet des allocations mémoires de mon programme et tenter de rendre ca un peu plus léger, mais bon :/

    Bonne soirée !

  2. #2
    Expert confirmé
    Avatar de gerald3d
    Homme Profil pro
    Conducteur de train
    Inscrit en
    Février 2008
    Messages
    2 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Conducteur de train
    Secteur : Transports

    Informations forums :
    Inscription : Février 2008
    Messages : 2 308
    Billets dans le blog
    5
    Par défaut
    Je n'ai pas connaissance de limites hors celles liées à la machine. Donc tu as touché du doigt ton soucis il me semble.
    Pour éviter le crash tu peux toujours tester le chargement de chaque image avant son affichage.

    De mon côté je développe aussi une application de traitement d'image avec un peu les mêmes idées que les tiennes. Un notebook avec quelques onglets. A la différence de toi je crée dans chaque onglet des miniatures des images. J'avoue ne pas avoir essayé un répertoire de + de 300 images. Faudrait que je teste pour voir...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    Le problème peut venir de la machine sur laquelle tu développe Skip781828 !

    Peux-tu préciser la configuration de ta machine ?

    De mon côté j'ai réussi à charger 300 images sans problème

  4. #4
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    Boah
    J'avais un laptop assez weak, avec Vista en plus ^^

  5. #5
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    J'ai changé de config, et aprés la page 207, il me fait un joli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [GdkWarning]Create WindowEx failed : Le processus actuel à utilisé tout son lot alloué par le systeme de descripteurs pour les objets du gestionnaire de fenêtre
    (et le même message d'erreur pour gdkCursor)

    => J'ai vérifié, c'est pas l'image en question qui fout le bordel, c'est donc bien un probleme de limitation dans la mémoire allouée !

    Curieux de savoir si vous avez le même problème

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    non

  7. #7
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    Bon bah je suis maintenant persuadé qu'il y'a une limitation.
    Ca fait plusieurs fois de suite qu'il bloque à la 200eme (tout rond)
    toujours un message disant que l'espace mémoire alloué à la fenêtre bloque.

    A noter que depuis la derniere fois, j'ai rendu plus clean l'affichage de chaques page, prenant moins de place, et maintenant chaque page prend la même place.

    => d'ou la page fixe à laquelle ca plante.

    Aprés ca me marque un peu que ca soit la 200eme tout rond, mais bon c'est peut être un hasard ...

    En tout cas ca me soule bien ce truc

    Va falloir que je fasse une option speciale dossier à plus de 200 images

  8. #8
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    Juste, pour ceux que ca interesse, il semblerait qu'en effet la limitation soit réelle, je suis toujours bloqué à la 200eme, et l'option IHMless que j'ai crée (traitement d'image effectué, mais rien d'affiché graphiquement - juste les résultats en mode console) me permet bien un nombre illimité de gestion de fichiers (je suis allé jusqu'à 2200)

    D'aprés les messages d'erreur, il s'agirait donc d'un nombre limité de container, et plus précisément de windows, les tabs étant considérés ici comme des windows, pour chaque appli, surement afin d'éviter les débordement mémoire.
    => 200 max !

    a bon entendeur.

  9. #9
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Je ne pense pas que le nombre de page d'un notebook soit limité de la sorte du moins pas en théorie. Es-tu certains que cela ne viennent pas du fait que chacune de tes pages contiennent une image et que cela est très lourd en mémoire. Essaye donc de créer un notebook contenant 300 pages vides...

  10. #10
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    Non bah vides, ou avec un label dedans, y'a pas de soucis, ça va jusqu'à plusieurs milliers sans problèmes, même si le temps de création est de plus en plus lent au fur et à mesure (logique).

    Mais dès que les onglets prennent la fonction de fenêtre (container de containers), bah ça coince rapidement.

    Il s'agit bien entendu de dépassement mémoire, comme le message d'erreur que j'ai posté plus haut le laisse penser.

    Mais le fait est que c'était chaque fois après la 200ème page que le programme plantait.

    Je sais pas ce que l'on doit en déduire, mais ce qui est certain, c'est que ça donne au final une limitation aux gtk notebooks, qu'on le veuille ou non

  11. #11
    Membre confirmé Avatar de skip78
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 247
    Par défaut
    Mouais bon je viens de faire quelques tests pas trés concluants.

    Ca reste un peu mysterieux, peut être est ce vraiment juste un hasard ?

    Bref...

    gL hF

  12. #12
    Membre éprouvé
    Avatar de Shugo78
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 119
    Par défaut
    Pour jouer un peu sur les mots .
    Je dirais que les GtkNotebook n'ont pas de limites théoriques a part peut être une limitation due aux tailles maximum des variables en langage C, en effet l'erreur de dépassement mémoire étant dépendant de la machine sur laquelle le programme s'éxécute.

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 32
    Par défaut
    Salut,

    N'est-ce pas une limite sur la taille de la fenêtre (premier sens) ?
    Par exemple chez moi (GNU/Linux, XWindow, Metacity), si je crée un notebook avec 10000 pages labelées « Page <n> », ça passe bien si je rend le notebook scrollable (la fenêtre a une taille raisonnable) mais pas sinon (la fenêtre est logiquement immense, et j'obtiens une erreur) :
    Code erreur : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    The program 'nb.out' received an X Window System error.
    This probably reflects a bug in the program.
    The error was 'BadAlloc (insufficient resources for operation)'.
      (Details: serial 206 error_code 11 request_code 53 minor_code 0)
      (Note to programmers: normally, X errors are reported asynchronously;
       that is, you will receive the error a while after causing it.
       To debug your program, run it with the --sync command line
       option to change this behavior. You can then get a meaningful
       backtrace from your debugger if you break on the gdk_x_error() function.)

    Petit code pour tester, jouer avec la ligne 15 :
    Code C : 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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    #include <gtk/gtk.h>
     
    int main (int argc, char** argv)
    {
      GtkWidget *window;
      GtkWidget *notebook;
      guint      i;
     
      gtk_init (&argc, &argv);
     
      window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
      g_signal_connect (window, "delete-event", gtk_main_quit, NULL);
      notebook = gtk_notebook_new ();
      /* commenter/décommenter la ligne suivante pour tester */
      gtk_notebook_set_scrollable (GTK_NOTEBOOK (notebook), TRUE);
      gtk_container_add (GTK_CONTAINER (window), notebook);
     
      for (i = 0; i < 10000; i++)
      {
        GtkWidget *label;
        GtkWidget *page;
        gchar     *label_text;
     
        label_text = g_strdup_printf ("Page %u", i+1);
        label = gtk_label_new (label_text);
        g_free (label_text);
        page = gtk_vbox_new (FALSE, TRUE);
     
        gtk_notebook_append_page (GTK_NOTEBOOK (notebook), page, label);
      }
     
      gtk_widget_show_all (window);
     
      gtk_main ();
     
      return 0;
    }

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/10/2011, 23h30
  2. Imposer nombre de page maximum
    Par Angerbode dans le forum Mise en forme
    Réponses: 1
    Dernier message: 22/06/2011, 16h59
  3. [WD-2010] Nombre de pages maximum à un document
    Par iraldir dans le forum Word
    Réponses: 1
    Dernier message: 06/02/2011, 15h58
  4. Nombre d'enregistrements maximums pour une listbox
    Par Zenerox dans le forum VBA Access
    Réponses: 2
    Dernier message: 09/12/2008, 17h17
  5. Nombre de CSS maximum dans une page
    Par farfadet dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 06/12/2007, 14h14

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