如何在C中获得CPU和内存使用率? (在Linux系统中)

时间:2019-06-04 04:38:24

标签: linux c cpu-usage

我写了一个关于vigenere加密和解码的C程序。 然后,我想在此程序中添加CPU和内存使用率。

但是,我不知道在该程序中添加什么资源(CPU和内存)利用率代码。 ※我只想知道此程序中的资源(CPU和内存)利用率。 我希望每个人都能帮助我。谢谢!

以下代码是我的vigenere加密和解码的C程序

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/time.h>
#include <omp.h>

int char_to_index(char c)
{
    /*if(c>='A' && c<='Z'){
        c=c+32;
    }*/
    char x = c;
    char result = x - 'a';
    return (int)result;
}

char index_to_char(int c)
{
    int result = c + 97;
    return (char)result;
}

char * xorencrypt(char * message, char * key) {
    int i;
    size_t messagelen = strlen(message);
    size_t keylen = strlen(key);

    char * encrypted = malloc(messagelen+1);
    //start to parallel
    omp_set_num_threads(8);
    #pragma omp parallel \
    private(i)
#pragma omp for
    for (i = 0; i < messagelen; i++) {
        int buf1 = char_to_index(message[i]);
        int buf2 = char_to_index(key[i % keylen]);
        char r = index_to_char(buf1 ^ buf2);
        encrypted[i] = r;
    }

    encrypted[messagelen] = '\0';

    return encrypted;
}

char * xordecode(char * cript, char * key) {
    int i;
    size_t criptlen = strlen(cript);
    size_t keylen = strlen(key);

    char * message = malloc(criptlen+1);
    //start to parallel
    omp_set_num_threads(8);
    #pragma omp parallel \
    private(i)
#pragma omp for
    for (i = 0; i < criptlen; i++) {
        int buf1 = char_to_index(cript[i]);
        int buf2 = char_to_index(key[i % keylen]);
        char r = index_to_char(buf1 ^ buf2);
        message[i] = r;
    }

    message[criptlen] = '\0';

    return message;
}

int    time_substract(struct timeval *result, struct timeval *begin,struct timeval *end)
{
    if(begin->tv_sec > end->tv_sec)    return -1;
    if((begin->tv_sec == end->tv_sec) && (begin->tv_usec > end->tv_usec))    return -2;
    result->tv_sec    = (end->tv_sec - begin->tv_sec);
    result->tv_usec    = (end->tv_usec - begin->tv_usec);

    if(result->tv_usec < 0)
    {
        result->tv_sec--;
        result->tv_usec += 1000000;
    }
    return 0;
}

int main(int argc, const char * argv[]) {
    //count time!!!
    struct timeval start,stop,diff;
    memset(&start,0,sizeof(struct timeval));
    memset(&stop,0,sizeof(struct timeval));
    memset(&diff,0,sizeof(struct timeval));
    gettimeofday(&start,0);
    //count time!!!

    char * message = "By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. By using the article the, we’ve shown that it was one specific day that was long and one specific cup of tea that tasted good. ";
    printf("Input    : %s\n",message);
    char * key = "key";

    char * encrypted = xorencrypt(message, key);
    printf("Encrypted: %s\n", encrypted);

    char * message1 = xordecode(encrypted, key);
    printf("Decrypted: %s\n", message1);

    //count time!!!
    gettimeofday(&stop,0);
    time_substract(&diff,&start,&stop);
    printf("Total time : %d s,%d us\n",(int)diff.tv_sec,(int)diff.tv_usec);
    //count time!!!
    return 0;
}

1 个答案:

答案 0 :(得分:0)

您可能想看看getrusage()系统调用。

它可以告诉您有关进程本身和内核中正在使用哪种类型的内存以及使用了多少CPU时间的详细信息。