Re: Tcl et allocation mémoire

トップ ページ

このメッセージに返信
著者: Patrice Karatchentzeff
日付:  
To: guilde
題目: Re: Tcl et allocation mémoire
Le Wed, 5 Dec 2001 15:36:07 +0100, patrice.karatchentzeff@???
écrivait :

> Quelqu'un saurait-il comment tcl s'alloue de la place mémoire ?

Y-a-t'il
> une limite théorique ? Ou y-a-t'il un processus du genre « tant qu'il

y
> en a de disponible, j'alloue...» ?
>
> Mon problème est le suivant. Tcl tourne sous Solaris (2.7 ici et a été
> compilé en 32 bits 9i.e sur Solaris 2.5)). Je pète l'allocation

mémoire
> aux alentours des 4 giga-octets alloués (le dernier marquage avant le
> seg fault était à 3,95 Go). Je voudrais savoir si le codage des

sources
> de Tcl impose une allocation maximale (genre 32 bits), ou bien si

cette
> allocation est dynamiquement bloquée à la compilation (ici 32 bits car
> compilé sur Solaris 2.5) ou bien (on peut rêver...) dépendant de la
> limite de integer sur l'OS où il tourne (ici, aux environs de 64 bits
> car Solaris 2.7).


Bon, merci pour les réponses, publiques et privées.

Pour fred, je n'obtiens un « char * » de 4, soit 32 bits. Mais cela ne
veut rien dire étant donné que je n'ai pu compilé le programme qu'avec
gcc qui est lui-même 32 bits (cc n'est pas installé...).

Pour Jérôme, je connaissais bien sûr tout cela. Le problème est de
savoir si tcl se base sur l'OS pour gérer son ramasse-miette et son
allocation ou bien si c'est câblé en dur. J'ai jeté un coup d'oeil dans
les sources mais cela reste un peu abscon (pour moi en tout cas. Pour
ceux qui serait plus compétent que moi, le fichier est dans
./generic/tclAlloc.c . Il y en a peut-être d'autres ailleurs.) Du coup,
je me pose la même question pour Perl. Larry Wall disait que tant qu'il
reste de la mémoire, on peut allouer...

Pour Patrick,

1) je suis sûr d'atteindre 4 Go en 32 bits. Il suffit de positionner les
valeurs de limit correctement sur Solaris 2.5 (par défaut, c'est limité
à 2 Go). De toute façon, je tourne en 2.7 et avec d'autres processus
(hors Tcl), j'alloue autant de giga que je veux.

2) Pour le moment, je n'ai pas accès au shell Tcl de l'application (elle
est fournie avec...) donc je ne sais pas trop *comment* a été compilé le
tclsh. Je suis en train de l'extraire (vive les scripts...).

Bref, merci pour vos réponses.

PK

PS : je commence à desespérer : cette obsession de compatibilité
ascendante (ici 64 bits vers 32 bits) est une merde sans nom à gérer dès
qu'il y a des problèmes. Un conseil pour ceux qui aurait une migration à
faire : évitez les solutions batardes mi dans l'un, mi dans l'autre. À
termes, c'est le bordel assuré ! Il vaut mieux s'embêter à tout migrer
d'un seul coup si c'est possible...

PS2: avec une application complètement propriétaire et fermée, il aurait
complètement impossible d'avoir un début de piste pour me
dépatouiller...

-- 
Patrice KARATCHENTZEFF
STMicroelectronics           Tel:  04-76-92-67-95
850, rue Jean Monnet
38926 CROLLES Cedex, France  Courriel: patrice.karatchentzeff@???