Paramètres de Up ! Kernel

Tous les programmes en technologie Up ! Virtual Technical Machine possèdent les paramètres énumérés ci-après. Certains paramètres font référence à des fichiers ou à des chemins d'accès. En ce cas, il est possible d'employer des variables environnement dans l'expression des chemins d'accès. Exemple :

Tmp=${UPS_HOME}/demo/tmp/${UPS_USER}

D'autre part, le séparateur de répertoire est le caractère division / et les noms de fichiers ou de répertoires peuvent utiliser les partitions montées automatiquement par Up ! System.

Les paramètres sont lus successivement dans :

Les valeurs des paramètres comportant des caractères espace doivent être mises entre caractères guillemet " ou entre caractères apostrophe ' .

Paramètres d'exécution

Debordement

Debordement permet de contrôler le débordement d'une valeur Entier ou Reel lors de son formatage en une valeur Caractere. La valeur par défaut est Non.

Contrôle du débordementValeur du paramètre
Pas de contrôle.Non
Contrôle sur la partie entière.Oui
Contrôle sur la partie entière et sur le signe.Signe

Debordement=Non

Si le débordement a lieu sur la partie entière, le nombre est remplacé par une suite de caractères étoile * . Si le débordement a lieu sur le signe, le nombre est remplacé par une suite de caractères moins - .

Journal

Journal permet de spécifier le fichier journal. Par défaut, le fichier journal est ${UPS_HOME}/log/upsaps.log en fonctionnement mono-poste ou ${UPS_HOME}/log/${UPS_USER}/upsaps.log en fonctionnement multi-poste.

Journal=${UPS_HOME}/demo/log/trace.txt

TracerArbreBinaire

TracerArbreBinaire permet de tracer chaque opération sur les arbres binaires. Par défaut, il n'y a pas de trace.

Cette trace est inscrite dans le fichier ${UPS_HOME}/log/${UPS_LANGUAGE}/${UPS_APPLICATION}-upskrn-tree-${UPS_SESSION}.log en mode mono-utilisateur ou dans le fichier ${UPS_HOME}/log/${UPS_USER}/${UPS_APPLICATION}-upskrn-tree-${UPS_SESSION}.log en mode multi-utilisateur.

Cette trace permet de s'assurer que les opérations sur les arbres binaires sont correctes.

TracerArbreBinaire=Oui

TracerException

TracerException permet de tracer chaque exception envoyée. Par défaut, les exceptions ne sont pas tracées.

Cette trace est inscrite dans le fichier ${UPS_HOME}/log/${UPS_LANGUAGE}/${UPS_APPLICATION}-upskrn-exception-${UPS_SESSION}.log en mode mono-utilisateur ou dans le fichier ${UPS_HOME}/log/${UPS_USER}/${UPS_APPLICATION}-upskrn-exception-${UPS_SESSION}.log en mode multi-utilisateur.

TracerException=Oui

Optimisation du cycle de vie des objets

TypeConservation possibleTaille par défaut
du segment
AppelOui.8.
ArbreBinaireOui.16.
BinaireOui.32.
CaractereOui.32.
ContrainteOui.32.
DateOui.32.
ElementArbreBinaireOui.64.
ElementListeOui.64.
EntierOui.32.
EntrepotNon.2.
EnumereOui.32.
ExceptionNon.16.
HachageOui.16.
IAlgebreCommutativeOui.32.
ICollectionOui.32.
ICorpsCommutatifOui.32.
IEnregistrementOui.8.
IEspaceMetreOui.32.
IIterateurOui.8.
IResultatRequeteOui.8.
ListeOui.16.
ModuleNon.8.
ObjetOui.8.
OctetOui.32.
ProprieteDynamiqueOui.32.
ReelOui.32.
ReferenceOui.32.
TableauOui.16.
TypeNon.16.

ConserverObjets, quand le paramètre est possible, spécifie qu'au plus TailleSegment objets du type sont conservés pré-construits en anté-mémoire au lieu d'être détruits.

Quand un nouvel objet du type est demandé, il est prélevé de l'anté-moire s'il en existe un pré-construit. Cela évite de réaliser des enchaînements de destruction / libération / ... / allocation / création d'objets de ce type trop fréquents.

Par défaut, les objets ne sont pas conservés en anté-mémoire.

ConserverObjetsAppel=Oui
ConserverObjetsArbreBinaire=Non
ConserverObjetsBinaire=Oui
ConserverObjetsCaractere=Non
ConserverObjetsContrainte=Oui
ConserverObjetsDate=Non
ConserverObjetsElementArbreBinaire=Oui
ConserverObjetsElementListe=Non
ConserverObjetsEntier=Oui
ConserverObjetsEntrepot=Non
ConserverObjetsEnumere=Oui
ConserverObjetsHachage=Non
ConserverObjetsIAlgebreCommutative=Oui
ConserverObjetsICollection=Non
ConserverObjetsICorpsCommutatif=Oui
ConserverObjetsIEnregistrement=Non
ConserverObjetsIEspaceMetre=Oui
ConserverObjetsIResultatRequete=Non
ConserverObjetsIIterateur=Oui
ConserverObjetsListe=Non
ConserverObjetsObjet=Oui
ConserverObjetsOctet=Non
ConserverObjetsProprieteDynamique=Oui
ConserverObjetsReel=Non
ConserverObjetsReference=Oui
ConserverObjetsTableau=Non

TailleSegment spécifie la taille d'un segment de mémoire dédié à un objet du type concerné en spécifiant le nombre d'objets de ce dernier par segment de mémoire. Ce nombre ne peut excéder la capacité du ramasse-miettes définie par TailleBloc*NbBlocs.

La valeur est 0 signifie que le type n'a pas ses propres buffers et que les objets du type sont alloués dans le tas commun.

TailleSegmentAppel=16
TailleSegmentArbreBinaire=32
TailleSegmentBinaire=64
TailleSegmentCaractere=64
TailleSegmentContrainte=64
TailleSegmentDate=64
TailleSegmentElementArbreBinaire=128
TailleSegmentElementListe=128
TailleSegmentEntier=64
TailleSegmentEntrepot=4
TailleSegmentEnumere=64
TailleSegmentException=32
TailleSegmentHachage=32
TailleSegmentIAlgebreCommutative=64
TailleSegmentICollection=64
TailleSegmentICorpsCommutatif=64
TailleSegmentIEnregistrement=16
TailleSegmentIEspaceMetre=64
TailleSegmentIIterateur=16
TailleSegmentIResultatRequete=16
TailleSegmentListe=32
TailleSegmentModule=16
TailleSegmentObjet=16
TailleSegmentOctet=64
TailleSegmentProprieteDynamique=64
TailleSegmentReel=64
TailleSegmentReference=64
TailleSegmentTableau=32
TailleSegmentType=32

Exemple de configuration d'Up ! Kernel

; -------------------------------------------------------------------
; Fichier : upsaps.ini
; Objet : Initialisation d'Up ! Virtual Technical Machine.
;
; Module : Up ! Application System.
; Auteur-Date : DUVAL Jean-Pierre - Novembre 2003.
; -------------------------------------------------------------------
; Observations
;
;
; -------------------------------------------------------------------

[UpsDbg]
MiseAuPoint=Aucun

[UpsKrn]
ConserverObjetsAppel=Oui
ConserverObjetsArbreBinaire=Non
ConserverObjetsBinaire=Oui
ConserverObjetsCaractere=Non
ConserverObjetsContrainte=Oui
ConserverObjetsDate=Non
ConserverObjetsElementArbreBinaire=Oui
ConserverObjetsElementListe=Non
ConserverObjetsEntier=Oui
ConserverObjetsEntrepot=Non
ConserverObjetsEnumere=Oui
ConserverObjetsHachage=Non
ConserverObjetsIAlgebreCommutative=Oui
ConserverObjetsICollection=Non
ConserverObjetsICorpsCommutatif=Oui
ConserverObjetsIEnregistrement=Non
ConserverObjetsIEspaceMetre=Oui
ConserverObjetsIResultatRequete=Non
ConserverObjetsIIterateur=Oui
ConserverObjetsListe=Non
ConserverObjetsObjet=Oui
ConserverObjetsOctet=Non
ConserverObjetsProprieteDynamique=Oui
ConserverObjetsReel=Non
ConserverObjetsReference=Oui
ConserverObjetsTableau=Non
Debordement=Signe
TailleSegmentAppel=16
TailleSegmentArbreBinaire=32
TailleSegmentBinaire=64
TailleSegmentCaractere=64
TailleSegmentContrainte=64
TailleSegmentDate=64
TailleSegmentElementArbreBinaire=128
TailleSegmentElementListe=128
TailleSegmentEntier=64
TailleSegmentEntrepot=4
TailleSegmentEnumere=64
TailleSegmentException=32
TailleSegmentHachage=32
TailleSegmentIAlgebreCommutative=64
TailleSegmentICollection=64
TailleSegmentICorpsCommutatif=64
TailleSegmentIEnregistrement=16
TailleSegmentIEspaceMetre=64
TailleSegmentIIterateur=16
TailleSegmentIResultatRequete=16
TailleSegmentListe=32
TailleSegmentModule=16
TailleSegmentObjet=16
TailleSegmentOctet=64
TailleSegmentProprieteDynamique=64
TailleSegmentReel=64
TailleSegmentReference=64
TailleSegmentTableau=32
TailleSegmentType=32

[UpsPrf]
Profilage=Aucun