TL;DR: c’est compliqué à faire et ça va prendre vachement de temps. Faut voir le logiciel.
combien mon application vas prendre de ram et du proc au pire des cas
C’est compliqué à déterminer, surtout si ton programme tourne sur un PC avec un OS type Linux/Windows/Mac. Ces OS ont tous leurs façons d’allouer la mémoire. Sous Linux tu as l’outil ps (aussi l’outil top/htop) pour afficher les informations sur les processus en cours de fonctionnement, mais les informations qu’il va te donner ne représentent pas exactement la mémoire allouée (généralement plus que nécessaire).
Pour la RAM
Le plus simple, c’est d’utiliser l’outil Valgrind avec son extension massif pour analyser l’utilisation du tas (ce sur quoi tu alloues quand tu fais un new ou malloc).
| valgrind --tool=massif ./ton-exécutable <arguments de ton exécutable>
|
Celà te donnera un fichier massif.out.qqch qui te donnera les informations importantes de la mémoire utilisée.
L’autre moyen, c’est d’effectuer une analyse statique du programme :
- tu notes chaque endroit où tu fais une allocation mémoire, avec la taille des blocs alloués à chaque fois
- tu détermines quelles allocations sont statiques (càd celles dont on connaît le nombre à la compilation)
- pour toutes les autres allocations, tu essaies de déterminer un nombre selon le service fournit (exemple : pour un serveur web, les allocations dynamiques sont dépendantes du nombre d’utilisateurs connectés; tu peux donc déduire la mémoire par utilisateurs).
Pour le proc
Là c’est la colle. Ca dépend du nombre de processus lancés, du modèle de CPU, de la fréquence, de la mémoire allouée, etc. Et si ton programme utilise plusieurs coeurs (via les threads ou les processus), tu ne pourras rien faire (vu que tout se fait en parallèle).
Il faudrait plus d’informations sur ton programme et son architecture pour identifier une tendance sur l’utilisation du processeur. Pareil que pour la RAM, l’outil ps ou top te donnent une indication de l’utilisation du processeurs (mais là aussi c’est pas exactement les chiffres exacts).
En résumé
est ce qu’il y’a des programmes ou utilitaires ou une méthode normalisée pour tirer ce type d’information
Si ton programme est mono-processeur et qu’il est seul (le noyau est considéré comme un processus), alors oui il est possible de déterminer la mémoire utilisée (l’utilisation du proc aussi, mais ça dépend du CPU).
Si tu veux plus d’aide, il faudrait nous présenter le logiciel visé par ta question.