Compression des objets

BoTTom |    Changer de couleur
     Compression/décompression d'objets. (nouveauté V2 R1.0)
  # 
 
     Compression 
         Procédé qui consiste à supprimer les caractères répétitifs, des 
         blancs ou des chaînes de caractères des données traitées et de 
         remplacer les caractères répétitifs par des caractères de 
         contrôle. La compression réduit la quantité d'espace mémoire 
         nécessaire aux données. 
 
       Exemple: non compressé: '       ', compressé: '*8 '
                               <-8esp->             <CTL,8fois' '>
 
     Décompression 
         Fonction inverse de la compression (les données reprennent leur 
         forme initiale), durant laquelle les caractères de contrôle sont 
         remplacés par des données réelles. 
 
 
 
 
 


|    Changer de couleur
  # 
     La commande CPROBJ (Comprimer un objet) permet de comprimer des 
     objets. 
 
     Restrictions : 
      o  Pour comprimer un objet, vous devez disposer du droit de gestion 
         de l'objet (*OBJMGT). 
      o  Les objets sauvegardés avec libération de mémoire ne peuvent 
         être ni comprimés, ni décomprimés. 
      o  Les objets comprimés ne peuvent pas être sauvegardés pour une 
         édition antérieure à la version 2, édition 1 du système OS/400. 
      o  Les programmes sans valeur de validation correcte ne sont pas 
         comprimés. 
      o  Les programmes créés avant l'édition 3.0 d'OS/400 et non 
         retraduits (à l'aide de la commande CHGPGM (Modifier un 
         programme)) ne peuvent pas être comprimés car aucune valeur de 
         validation n'a été générée. 
      o  Avant de comprimer un programme système, vous devez arrêter tous 
         les sous-systèmes actifs.
      o  Ne peuvent être comprimés que les objets *FILE de type fichiers 
         écran ou fichiers imprimante(DSPF,PRTF)
 


|    Changer de couleur
 
 Le paramètre OBJ (objet(s) à comprimer accepte les valeurs:
 
      *ALL 
 ou
     nom-objet-générique*, nom-objet.
 
 Les valeurs possibles pour la bibliothèque sont les suivantes : 
 
          *LIBL 
 
         *USRLIBL 
 
         *CURLIB 
 
         *ALL  (y compris QSYS)
 
         *ALLUSR Toutes les bibliothèques utilisateurs y compris :
                 QDSNX, QGPL, QGPL38, QPFRDATA, QRCL, QS36F, QUSER38 et 
                 QUSRSYS. 
         nom-bibliothèque 
 


|    Changer de couleur
 
 Type d'objet acceptant la compression
 
     *FILE 
         Les fichiers écran et imprimante uniquement
 
     *MENU 
         Les menus système uniquement
  # 
     *PNLGRP 
         Les groupe de panneaux (générés par UIM ou fournis avec le système)
 
     *PGM 
         Les programmes (sans restriction)
 
      *ALL est admis.
 
 
 
 
 
 


|    Changer de couleur
 
 Nb jours d'inutilisation
 
     Indique le nombre de jours pendant lesquels l'objet n'a pas été 
     utilisé. S'il n'a pas été utilisé pendant un nombre de jours 
     supérieur à celui indiqué, il est comprimé. Dans le cas contraire, 
     il reste décomprimé. 
 
     Les valeurs possibles sont les suivantes : 
 
      *NONE 
         L'objet est comprimé, quel que soit le nombre de jours pendant 
         lesquels il est resté inutilisé. 
 
     1-366 
         Indiquez le nombre de jours. Les valeurs admises sont comprises 
         entre 1 et 366. 
 
 
 
 
 


|    Changer de couleur
 
 Option de programme
 
     Indique si la totalité du programme ou seulement les tables 
     d'observabilité sont comprimées. 
 
     Les valeurs possibles sont les suivantes : 
 
      *ALL 
         La totalité du programme (flot d'instructions et tables 
         d'observabilité) est comprimée. 
  # 
     *OBS 
         Seules les tables d'observabilité sont comprimées. 
         (les tables d'observabilité servent au DEBUG)
 
         Elles peuvent être enlevées par la commande CHGPGM RMVOBS(*ALL) 
         ce qui permet de gagner de la place mais interdit le debug pour
         ce programme (recréation du pgm nessécaire)
 
         La compression des tables d'observabilité constitue peut-etre
          le moyen terme le plus interessant.


|    Changer de couleur
 
 Les commandes DSPOBJD et RTVOBJD permettent de savoir si un objet est
  comprimé, l'information a été ajoutée au fichier QADSPOBJ de QSYS.
 
 La décompression d'un objet est automatique lors de son utilisation
 
    Open pour un fichier
    Call pour un pgm
    Aide pour un panneau d'aide
    Go   pour un menu (système)
 
  Mais va rendre cette fonction plus longue,il est donc conseillé de ne
   pas comprimer les objets souvent utilisés.
 
 A noter que dans le cas de pgm,
 
  -seule la partie instruction est décompressée lors d'un CALL
  -la partie "tables d'observabilité" n'est décompressée que par STRDBG.
 
 Il est donc possible de comprimer (partie "observabilité") TOUS les pgms.
 
 


|    Changer de couleur
 
 Cette décompression est PROVISOIRE pour tous les types d'objets autre
                                                                 que pgm.
 
 Un objet va rester "décompressé provisoirement", jusqu'à:
 
    - un IPL (tous les objets provisoirement décompressés sont comprimés)
    - l'utilisation de la commande RCLTMPSTG
                    qui permet de demander la recompression d'objets
                    pour une bibliothèque ou un groupe (*ALL, *ALLUSR ...)
                    si l'objet n'a pas été utilisé depuis un certain
                    nombre de jours.
    - l'utilisation de l'objet plus de CINQ fois ou plus de deux jours
       depuis le dernier IPL auquel cas la décompression devient définitive.
    - l'utilisation de la commande DCPOBJ (décompression d'un objet)
       qui rend cette décompression définitive.
 
 
 Cette décompression est DEFINITIVE pour un pgm.
 
 Il faut donc planifier les recompression d'objets
 


|    Changer de couleur
  # 
     La commande DCPOBJ (Décomprimer un objet) permet de décomprimer 
     définitivement des objets. Dans ce cas, leur forme comprimée et leur 
     forme temporaire, le cas échéant, sont supprimées. 
 
     Les paramètres objet,bibliothèque et type d'objet admettent les même
      valeurs que pour la compression.
 
     Le paramètre Option de programme (PGMOPT) admet les valeurs suivantes:
 
      *ALL 
         La totalité du programme (flot d'instructions et tables 
         d'observabilité) est décomprimée. 
 
     *INS 
         Seul le flot d'instructions est décomprimé. 
 
 
 
 
 
 


|    Changer de couleur
 
 Quelques exemples de compression: (les tailles sont en octets)
 
 
                                                            !    Gain     !
     ! Type d'objet  !  Sans compression ! Avec compression ! en O ! en % !
     !---------------!-------------------!------------------!------!------!
     ! *FILE (dspf)  !       8704        !      4608        ! 4024 ! 46,2 !
     !               !                   !                  !      !      !
     ! *PNLGRP       !       4096        !      2048        ! 2048 ! 50,0 !
     !               !                   !                  !      !      !
     ! *PGM  (cl)    !     119808        !     95232 (*OBS) !24576 ! 20,5 !
     !               !                   !     73728 (*ALL) !46080 ! 38,4 !
     !               !                   !                  !      !      !
     ! *PGM (le même !      73216        !     52224 (*ALL) !20992 ! 28,6 !
     ! apres RMVOBS) !                   !                  !      !      !
     !               !                   !                  !      !      !
     ! *MENU (MAIN)  !      14336        !      6144        ! 8192 ! 57,1 !
     !               !                   !                  !      !      !
     !---------------!-------------------!------------------!------!------!
 
 





©AF400