Changeset 2255 in Sophya for trunk/SophyaLib/SysTools/resusage.cc
- Timestamp:
- Nov 8, 2002, 12:26:22 AM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SysTools/resusage.cc
r2212 r2255 1 1 #include "resusage.h" 2 2 3 #include <typeinfo> 3 4 #include <sys/types.h> 4 5 #include <sys/time.h> 6 #include <sys/stat.h> 5 7 #include <sys/resource.h> 6 8 #include <unistd.h> 7 9 #include <time.h> 8 10 #include <fcntl.h> 11 #include <fstream.h> 12 #include <stdio.h> 13 #include <string> 9 14 /*! 10 15 \class SOPHYA::ResourceUsage … … 46 51 getrlimit(RLIMIT_STACK, &rl); 47 52 max_stack = rl.rlim_cur/1024; 53 #if defined(Linux) 54 // recuperation des limites sous Linux 55 // car je ne comprends pas ce que renc=voie getrlimit 56 // OPerdereau LAL Orsay 11/2002 57 ReadLinuxTotMem(); 58 #endif 48 59 49 60 cur_datasz = 0; … … 58 69 delta_tottm = 0; 59 70 delta_elapsed_time = 0; 71 cur_pid = getpid(); 60 72 Update(); 61 73 … … 86 98 cur_systm = s_timeval2msec(rsu.ru_stime); 87 99 cur_tottm = cur_usrtm+cur_systm; 100 delta_tottm = cur_tottm-delta_tottm; 101 102 #if defined(Linux) 103 // Recuperation de la place en memoire ss Linux 104 ReadLinuxMem(); 105 #else 88 106 cur_rss = rsu.ru_maxrss; 89 107 cur_datasz = rsu.ru_idrss; 90 108 cur_stack = rsu.ru_isrss; 91 delta_tottm = cur_tottm-delta_tottm; 109 #endif 110 92 111 delta_rss = cur_rss-delta_rss; 93 94 112 delta_elapsed_time = elapsed_time; 95 113 time_t tm = time(NULL); … … 128 146 << " kbytes" << endl; 129 147 } 148 /*! 149 Recuperation de la place en memoire ss Linux 150 ecrit d'apres les sources du code de top 151 O. Perdereau LAL Orsay 11/2002 152 153 */ 154 void ResourceUsage::ReadLinuxMem(){ 155 156 #if defined(Linux) 157 158 char flnm[120]; 159 160 sprintf(flnm,"/proc/%d/statm",(int)cur_pid); 161 ifstream fich(flnm) ; 162 163 164 long lia,lib,lic,lid,lie,lif,lig; 165 166 fich >> lia >> lib >> lic >> lid >> lie >> lif >> lig ; 167 168 cur_rss = lia*4; // les valeurs sont en pages de 4 k 169 cur_datasz = lib*4; 170 cur_stack = lic*4; 171 172 #endif 173 174 } 175 176 177 /*! 178 Recuperation de la memoire dispo ss Linux 179 ecrit d'apres les sources du code de top 180 O. Perdereau LAL Orsay 11/2002 181 */ 182 void ResourceUsage::ReadLinuxTotMem(){ 183 #if defined(Linux) 184 185 char flnm[]="/proc/meminfo"; 186 char buff[512]; 187 ifstream fich(flnm) ; 188 189 fich.getline(buff,200); // on saute une ligne 190 191 string tst; 192 long lia,lib,lic,lid,lie,lif; 193 fich >> tst >> lia >> lib >> lic >> lid >> lie >> lif; 194 195 max_rss = lia/1024; // conversion en kbytes 196 197 #endif 198 199 }
Note:
See TracChangeset
for help on using the changeset viewer.