Vous êtes sur le site Web historique de la documentation de 4D. Les documentations sont progressivement déplacées vers developer.4d.com |
||||||||||||||||||||||||
|
4D v20.6
Tableaux et mémoire
|
Type de Tableau | Calcul de la quantité de mémoire en octets |
Booléen | (31+nombre d'éléments)/8 |
Date | (1+nombre d'éléments) * 6 |
Alpha | (1+nombre d'éléments) * (somme de la taille de chaque texte) |
Entier | (1+nombre d'éléments) * 2 |
Entier long | (1+nombre d'éléments) * 4 |
Image | (1+nombre d'éléments) * 4 + somme de la taille de chaque image |
Pointeur | (1+nombre d'éléments) * 16 |
Réel | (1+nombre d'éléments) * 8 |
Texte | (1+nombre d'éléments) * (somme de la taille de chaque texte) |
Deux dimensions | (1+nombre d'éléments) * 12 + somme de la taille de chaque tableau |
Notes :
Lorsque vous travaillez avec de très grands tableaux, la meilleure façon de gérer d'éventuels problèmes de saturation de la mémoire est d'accompagner la création de tableau d'une méthode projet ON ERR CALL. Exemple :
// Vous allez lancer une opération batch fonctionnant toute la nuit
// qui requiert la création de grands tableaux. Pour éviter
// des erreurs en pleine nuit, créez les tableaux au début de
// l'opération et testez les erreurs au même moment :
gError:=0 ` Initialisation
ON ERR CALL("GESTION ERREUR") ` Installation de la méthode de gestion d'erreurs
ARRAY STRING(63;asCeTableau;50000) ` Environ 3125 Ko en mode ASCII
ARRAY REAL(arCetAutreTableau;50000) ` 488 Ko
ON ERR CALL("") ` Il n'est plus nécessaire d'intercepter les erreurs
If(gError=0)
// Les tableaux ont pu être créés
// poursuivons l'opération
Else
ALERT("Cette opération requiert davantage de mémoire !")
End if
// Dans tous les cas, nous n'avons plus besoin des tableaux
CLEAR VARIABLE(asCeTableau)
CLEAR VARIABLE(arCetAutreTableau)
La méthode projet GESTION ERREUR est la suivante :
// Méthode projet GESTION ERREUR
gError:=Error ` Retourner le code d'erreur
Produit : 4D
Thème : Tableaux
4D - Langage ( 4D v20)
4D - Langage ( 4D v20.1)
4D - Langage ( 4D v20.2)
4D - Langage ( 4D v20.3)
4D - Langage ( 4D v20.4)
4D - Langage ( 4D v20.5)
4D - Langage ( 4D v20.6)