Salut,
J'aimerais savoir si c'est possible (et comment) d'executer son programme dans une certaine quantité de mémoire, par exemple pour faire des tests sur un servers sans que tout s'ecroule si il y a un bug ?
Merci
Salut,
J'aimerais savoir si c'est possible (et comment) d'executer son programme dans une certaine quantité de mémoire, par exemple pour faire des tests sur un servers sans que tout s'ecroule si il y a un bug ?
Merci
Dans le langage C++, rien ne permet ceci. Si ton serveur est sous Linux, quelque chose de ce genre va marcher :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 struct rlimit limit; getrlimit(RLIMIT_AS, &limit); limit.rlim_cur = 800*1024*1024; // 800MB setrlimit(RLIMIT_AS, &limit);
Moi j'utiliserai des outils de niveau systeme.
Il y a moyen d'isoler des process dans des "prisons" (je crois que ça s'apelle comme cela). Et comme tu dis c'est notament utilisé sur les serveurs pour cloisoner les applis. Donc par exemple il y a le fameux chroot sous linux.
Faire cela dans l'appli ne me semble pas la bonne approche sauf si tu as un besoin particulier dont tu ne nous a pas encore parlé.
Attention : chroot ne permet pas (à ma connaissance) de limiter la mémoire utilisée par un processus. Par contre, on peut bidouiller un truc facile avec setrlimit puisque, selon la doc, fork et execve préservent les limites. Mais puisque c'est un programme de test, je vois pas de problème à coller ça dans l'appli, quitte à l'encadrer par des #define TEST_MEMOIRE pour être sur de ne pas compiler cette portion quand le code sortira de sa phase de test.Envoyé par valefor
Pour le chroot, il ne permet pas de limiter les ressources, mais ulimit en ligne de commande le permet.
Ok, c'est vrai que c'est discutable de ne pas le mettre dans l'appli.
Merci, je pense que
#include <ulimit.h>
repond a mes besoins...
c'est fou ce qu'on peut regler ... comme le pourcentage d'utilisation du cpu !
mais existerait-il un outil qui lance un autre programme en lui limitant les resources (principalement la memoire)
ulimit ne le permet pas a priori...
[EDIT 1] ha si il le peut, mais comment ca s'utilise au juste ? [/EDIT 1]
[EDIT 2] ok il limite sur le shell courant, bah ca correspond quand meme, je vais essayer, merci a tous [/EDIT 2]
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager