Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre chevronné Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2005
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2005
    Messages : 722
    Points : 682
    Points
    682

    Par défaut Gestion de la mémoire par la VM

    Hello,
    Voilà je dois dans mon script remplir une liste avec plusieurs million d'entrée et puis boucler sur cette liste pour faire des tests.
    J'aimerai savoir comment la VM va réagir au niveau de la RAM.
    Est-ce que chaque entrée va être introduite en dur dans la ram? va-t-elle stocker une partie dans un fichier temps et faire petit à petit? va-t-elle "comprendre" que la liste est énorme et qu'elle à le temps d'effectuer la boucle pendant que la liste se rempli?

    bref, merci de me renseigner.
    Citation Envoyé par sloshy
    5² = 25 mais (-5)²=25 aussi
    => Ce n'est pas parce qu'on a une solution qu'elle est forcement la meilleure

  2. #2
    Membre habitué
    Inscrit en
    mars 2003
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 30

    Informations forums :
    Inscription : mars 2003
    Messages : 127
    Points : 143
    Points
    143

    Par défaut

    Si tu a un exemple de code se sera plus facile pour te proposer quelque chose de plus personnalisé

  3. #3
    Membre extrêmement actif
    Inscrit en
    janvier 2007
    Messages
    1 424
    Détails du profil
    Informations forums :
    Inscription : janvier 2007
    Messages : 1 424
    Points : 1 611
    Points
    1 611

    Par défaut

    remplir une liste avec plusieurs million d'entrée
    D’où proviennent les données avant d’être enregistrées dans la liste ?
    À quoi cela sert-il de construire la liste: est-ce uniquement destiné à fournir le support pour mener les tests ?





    boucler sur cette liste pour faire des tests.
    Boucler comment ? Ligne par ligne ?
    Quelle sorte de tests ?
    Si le test ne porte que sur une ligne à la fois et que les données sont dans un fichier sur disque dur, il est possible et préférable de faire lire le fichier par un itérateur au lieu de créer une liste et d’y lire les données après:
    Code :
    1
    2
    3
    f = open(’fichier.txt’,’r’)
    for line in f:
        test sur line
    Si le test porte sur plusieurs lignes d’affilée, il sera nécessaire de lire des données en nombre suffisant pour englober les lignes qui doivent être traitées ensemble. Cela peut se faire avec f.read(23400) , 23400 étant le nombre d’octets lus à chaque fois que cette instruction est exécutée.

    Si ton test implique la comparaison de la ligne 236 avec la ligne 200236, alors là ça va devenir plus délicat......






    Est-ce que chaque entrée va être introduite en dur dans la ram?
    D’abord le terme "entrée" ne convient pas à mon avis. Une liste n’a pas des entrées, elle a des éléments. Un tableau a des entrées. Bref...
    Ensuite introduite à quel moment ? Après un test ? Avant ? Lorsque le programme fait quoi ?
    Si tu crées un objet liste et qu’ensuite tu y enregistres des données, alors à mon avis oui il y a inscription des données dans la RAM puisqu’un objet est une zone mémoire, d’après ma compréhension des choses.






    va-t-elle stocker une partie dans un fichier temps et faire petit à petit?
    Fichier temps = fichier dans le dossier Temp ? donc sur le disque dur ?
    Je ne connais rien à la VM, que ce soit clair.
    Mais ce scénario me laisse très dubitatif. Mettre une partie des données dans le DD et laisser le reste en RAM pour traitement, c’est un boulot de système d’exploitation, qui gère une mémoire d’échange (paging file), c’est à dire un stockage de données sur DD parce qu’elles ne peuvent plus être traitées par la RAM: c’est faire fonctionner une partie du DD comme de la RAM, mais évidemment les performances ne suivent pas. C’est provisoire, quand le sytème d’exploitation ne peut plus y arriver avec la RAM seulement.

    va-t-elle "comprendre" que la liste est énorme et qu'elle a le temps d'effectuer la boucle pendant que la liste se remplit?
    C’est à dire exécuter deux choses qui sont des tâches que le programme doit faire ? Personnellement j’en doute.





    Finalement ton interrogation revient à mon avis à se demander si la VM a une activité de système d’exploitation et une activité de programme informatique.

    Je pense que non, mais je ne suis pas d’un avis compétent. J’essaie simplement d’aider la réflexion.

  4. #4
    Membre chevronné Avatar de sloshy
    Homme Profil pro
    Consultant informatique
    Inscrit en
    janvier 2005
    Messages
    722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : janvier 2005
    Messages : 722
    Points : 682
    Points
    682

    Par défaut

    Bonjour,
    Les résultats sont issu de calcul suivant des paramètres entrée dans une ligne de commande (donc rien n'est à priori stocké sur le disque dur, sauf peut être par pagination).
    Je relirai a tête reposé vos réponses demain, merci d'avoir porté interet en tout cas.
    Citation Envoyé par sloshy
    5² = 25 mais (-5)²=25 aussi
    => Ce n'est pas parce qu'on a une solution qu'elle est forcement la meilleure

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •