diff options
author | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-06 14:18:56 +0800 |
---|---|---|
committer | kcwu <kcwu@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2010-11-06 14:18:56 +0800 |
commit | d2157cf6a87dfaaec88a4baeecb0da3ab5938308 (patch) | |
tree | b50564c019711aa73224e64334969377965747aa | |
parent | 44ac9522219c6a17954c01e03d7670c5828611c4 (diff) | |
download | pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.gz pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.bz2 pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.lz pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.xz pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.tar.zst pttbbs-d2157cf6a87dfaaec88a4baeecb0da3ab5938308.zip |
forgot to add memusage.c
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5208 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/common/osdep/memusage.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/pttbbs/common/osdep/memusage.c b/pttbbs/common/osdep/memusage.c new file mode 100644 index 00000000..5c9c8fc5 --- /dev/null +++ b/pttbbs/common/osdep/memusage.c @@ -0,0 +1,39 @@ +#include <stdio.h> +#include <sys/resource.h> + +#include "osdep.h" + +void get_memusage(int buflen, char *buf) +{ + struct rusage ru; +#ifdef __linux__ + int vmdata=0, vmstk=0; + FILE * fp; + char buf[128]; + if ((fp = fopen("/proc/self/status", "r"))) { + while (fgets(buf, 128, fp)) { + sscanf(buf, "VmData: %d", &vmdata); + sscanf(buf, "VmStk: %d", &vmstk); + } + fclose(fp); + } +#endif + + getrusage(RUSAGE_SELF, &ru); + snprintf(buf, buflen, +#ifdef __i386__ + "sbrk: %u KB, " +#endif +#ifdef __linux__ + "VmData: %d KB, VmStk: %d KB, " +#endif + "idrss: %d KB, isrss: %d KB", +#ifdef __i386__ + ((unsigned int)sbrk(0) - 0x8048000) / 1024, +#endif +#ifdef __linux__ + vmdata, vmstk, +#endif + (int)ru.ru_idrss, (int)ru.ru_isrss); +} + |