Modifier la taille des piles dans 4D

Support Technique 4D

Comment modifier la taille des piles dans 4D… code exemple.

- Titre : Modifier la taille des piles dans 4D

- Auteur : Support Technique 4D

- Parution : 16 mars 2006

- Licence : Copyright ® 2007 4D s.a. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Sommaire

- I. Présentation ♪

I - Présentation ♪

Produit : 4D 2004  ·  Plateforme : Mac, Win

Chaque process dans 4D a une taille de pile (stack size) définie par défaut.
Avec 4D 2003, la valeur par défaut de la pile pouvait être modifiée avec le 4D Customizer Plus.
Avec 4D 2004, la taille de la pile a été réajustée et ne peut plus être modifiée puisque que le 4D Customizer n'existe plus avec cette version.

Il se peut qu'une base de données ait besoin d'une plus grande taille de pile.

La méthode qui suit va créer un fichier de ressources qui contiendra les nouvelles valeurs pour la taille des piles.
Le type de ressource pour la stack est 4STK.
Les valeurs définies dans le code sont les valeurs par défaut sous Windows.

$resFile:=Creer fichier ressources("";"")

`ID 1
ENTIER LONG VERS BLOB(200000;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";1;$value;$resFile)
`sur appel événement
ECRIRE NOM RESSOURCE("4STK";1;"on event call";$resFile)

`ID 2
ENTIER LONG VERS BLOB(524288;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";2;$value;$resFile)
`sur appel port série
ECRIRE NOM RESSOURCE("4STK";2;"on serial port call";$resFile)

`ID 3
ENTIER LONG VERS BLOB(600000;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";3;$value;$resFile)
`nveau process exécuté depuis le mode Utilisation, sur serveur, client, macro
ECRIRE NOM RESSOURCE("4STK";3;"Exec on server, on client, from user mode, macro";$resFile)

`ID 4
ENTIER LONG VERS BLOB(1000000;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";4;$value;$resFile)
`nouveau process executé par le menu
ECRIRE NOM RESSOURCE("4STK";4;"Exec process from menu";$resFile)

`ID 5
ENTIER LONG VERS BLOB(262144;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";5;$value;$resFile)
`tâches sur le serveur
ECRIRE NOM RESSOURCE("4STK";5;"Server tasks";$resFile)

`ID 6
ENTIER LONG VERS BLOB(524288;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";6;$value;$resFile)
ECRIRE NOM RESSOURCE("4STK";6;"old backup";$resFile)

`ID 7
ENTIER LONG VERS BLOB(524288;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";7;$value;$resFile)
`ancienne restauration
ECRIRE NOM RESSOURCE("4STK";7;"old restore";$resFile)

`ID 8
ENTIER LONG VERS BLOB(262144;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";8;$value;$resFile)
`process web
ECRIRE NOM RESSOURCE("4STK";8;"Web";$resFile)

`ID 9
ENTIER LONG VERS BLOB(1400000;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";9;$value;$resFile)
`boucle sur serveur, cache, explorateur d'exécution
ECRIRE NOM RESSOURCE("4STK";9;"server event loop, cache, runtime explorer";$resFile)

`ID 10
ENTIER LONG VERS BLOB(1600000;$value;Ordre octets natif )
ECRIRE RESSOURCE("4STK";10;$value;$resFile)
`Apple event
ECRIRE NOM RESSOURCE("4STK";10;"Apple event";$resFile)

FERMER FICHIER RESSOURCES($resFile)

Si vous voulez modifier l'une ou l'autre de ces piles, remplacez la valeur dans la commande ENTIER LONG VERS BLOB.

Attention :
vous ne devez changer la valeur que pour les numéros (ID) 3, 4 et 8. Les autres numéros sont conservés tels quels pour des raisons de compatibilité ou sont réservés par le moteur 4D ; ils ne doivent donc pas être modifiés.

Sous Mac OS X, toutes les tailles de pile sont définies à 524288 par défaut, sauf pour les numéros 5 et 8 qui sont définies à 262144.

Une fois que le fichier .RSR a été créé, renommez-le en .4XR et placez-le dans le dossier 4D Extensions, puis relancez 4D.
Le fichier doit être placé dans le dossier 4D Extensions de chaque application 4D requérant ces nouvelles tailles de piles.

Documentation :

Créer fichier ressources

ENTIER LONG VERS BLOB

ECRIRE RESSOURCE

ECRIRE NOM RESSOURCE

FERMER FICHIER RESSOURCES

Commandes et sections pour Ressources

Quelle est la taille par défaut des piles dans 4D 2004 ?