amarao (amarao_san) wrote,
amarao
amarao_san

50% беременность

Ugly, ugly code. Грузит процессор примерно на указанный процент (для одного ядра).

#include <stdio.h>
#include <stdlib.h>
#include <sys/time.h>
void main(int argc, char* argv[]){
        int load=0;
        struct timeval begin;
        struct timeval end;
        struct timespec sleepy;
        long long dt;
        int c;
        if( argc<2){
                printf ("Load cpu with certain persent load \nUsage: mkload persentage\n");
        exit(-1);
        }
        load=atoi(argv[1]);
        if(load<1||load >100){
                printf("invalid load value: %s\n",argv[1]);
        }
        gettimeofday(&begin,NULL);
        timekill();
        gettimeofday(&end,NULL);
        dt=(end.tv_sec-begin.tv_sec)*1000000+(end.tv_usec-begin.tv_usec);
        sleepy.tv_sec=0;
        sleepy.tv_nsec=dt*(100-load)*1000;
        printf("1 persent will executed in %lld usec, loop is %lld usec of work, %lld usec of idle \n",dt,dt*load,(long long)sleepy.tv_nsec/1000);
        while(1){
                for(c=0;c<load;c++)
                        timekill();
                nanosleep(&sleepy);
        }
}

timekill(){
        int c;
        int dummy;
        for(c=0;c<16768;c++){
                dummy+=c*19/3;
        }
}
Tags: programming
Subscribe

  • innernet

    Кто-то с ним работал? https://blog.tonari.no/introducing-innernet Пока что по описанию оно звучит как офигенно.

  • ансибло-философия

    А вот я хочу продолжить думать умное про ансибл, ci/cd и прочую рабочую фигню между гитом и сервером. Классическое программирование стремится…

  • positive nagging

    Для повышения морали в коллективе было решено запретить токсичные и негативные сообщения в чате. Теперь все сообщения в чате выглядят так: Resolved…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 7 comments