<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
    <link href="chrome://translator/skin/floatingPanel.css"
      type="text/css" rel="stylesheet">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix"><br>
      <div class="moz-signature">On 20/03/2014 23:56, Technical GanXta
        wrote:<br>
      </div>
    </div>
    <blockquote cite="mid:532B7217.3090802@gmail.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      <div class="moz-cite-prefix"><br>
        <div class="moz-signature">
          <meta http-equiv="Content-Type" content="text/html;
            charset=ISO-8859-1">
          <br>
          <style>a {color: #F77A1E;</style>On 20/03/2014 23:33, il Katta
          wrote:<br>
        </div>
      </div>
      <blockquote
cite="mid:CAH7uX0aJ-QJaxoatc815Xy++aO59nFvQeFSqe0x2X3eFzYGMFQ@mail.gmail.com"
        type="cite">
        <div dir="ltr">Purtroppo ieri ero via per lavoro, temo lo sarò
          anche nelle prossime settimane -.-'
          <div><br>
            <div>In tinycore bash è presente nei repository ( se non
              sbaglio ). </div>
            <div>Sarebbe pensabile installarlo sulle tue macchine?  </div>
            <div>( non è neccesario usarlo come shell dell'utente, è
              sufficiente che sia installato in /bin/bash ). </div>
            <div>Ad ash mancano funzionalità di cui lo script fa uso.</div>
            <div>Se dai un occhio all'ultima revisione dello script[0]
              sto provato ad emulare il funzionamento di cpulimit.</div>
            <div>( lo script utilizza cpulimit se installato, altrimenti
              carica la funzione omonima ).</div>
          </div>
          <div><br>
          </div>
          <div>Saluti</div>
          <div><br>
          </div>
          <div>[0] <a moz-do-not-send="true"
              href="https://gist.github.com/il-katta/9582040"
              target="_blank">https://gist.github.com/il-katta/9582040</a></div>
          <div class="gmail_extra"><br>
            <br>
          </div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
      </blockquote>
      <br>
      Hmmm.. potrebbe esser un problema.<br>
      Lo script originale che mi proponevi pesava 2.2KB circa. (ottimo!)<br>
      Il programma fatto ieri all'incontro (vedi sotto) pesa 7.5KB con 5
      librerie linkate staticamente (più che accettabile).<br>
      <br>
      bash occupa 6.5MB una volta installata. Sono tanti, infatti in
      TinyCore e' stata sostituita con busybox proprio per questa
      ragione.<br>
      <br>
      Dunque ringraziandoti ancora una volta, Dario, mi permetto di
      pubblicare il programma consume.c :<br>
      <br>
      #include <stdlib.h><br>
      #include <stdio.h><br>
      #include <unistd.h><br>
      #include <stdint.h><br>
      #include <time.h><br>
      <br>
      <br>
      int main() {<br>
          srand(time(NULL));<br>
          int rmem = (rand()%89)+10;<br>
          printf("will use %d%% of free memory\n", rmem);<br>
          int rcpu = (rand()%89)+10;<br>
          printf("will use %d%% of cpu\n", rcpu);<br>
          //printf("%ld",0);<br>
          long freemem = sysconf(_SC_AVPHYS_PAGES) *
      sysconf(_SC_PAGE_SIZE);<br>
          malloc((int) rmem*0.01*freemem);<br>
          printf("%ju\n", (uintmax_t)clock()/CLOCKS_PER_SEC);<br>
          uint64_t j = 0;<br>
          long target = (int) rcpu*0.01*28000;<br>
          long to_sleep = 100 * (100 - rcpu);<br>
          while(1){<br>
              for (long i=0; i<target; i++){<br>
                  j++;<br>
              }<br>
              nanosleep((struct timespec[]){{0, to_sleep}}, NULL);<br>
          }<br>
          //printf("%ju\n", (uintmax_t)CLOCKS_PER_SEC);<br>
          printf("%lf\n", ((double)clock()/CLOCKS_PER_SEC));<br>
          //while()<br>
          return 0;<br>
      }<br>
      <br>
      Come abbiamo visto c'e' qualcosa che non va in quanto l'utilizzo
      reale della CPU/memoria non combaccia con i valori settati dal
      programma.<br>
      Oggi ho provato ad installare un'altra macchina virtuale con
      Fedora e gcc per continuare lo sviluppo del programma, ma non sono
      riuscito a scaricare il pacchetto gcc (e putroppo non ho avuto
      tempo per fare troubleshooting).<br>
      <br>
      Ora, cpulimit non sembra particolarmente pesante ma non se e'
      possibile installarlo su TinyCore in quanto la distribuzione
      utilizza questo formato particolare detto tcz.<br>
      <br>
      Devo valutare bene tutto, intanto grazie ancora a tutti!<br>
      <br>
      <br>
    </blockquote>
    <br>
    Ciao Katta,<br>
    <br>
    tralasciando il discorso della bash e di cpulimit (che penso di
    installare), l'utilizzo della CPU non risulta stabile. Anzi mi
    risulta 100% casuale.<br>
    Ho fatto le prove su una macchina virtuale con Fedora 20.<br>
    Potrebbe essere colpa dello scheduler che è troppo intelligente e,
    ottimizzando l'esecuzione dei thread, riduce (o comunque fa variare
    costantemente) l'utilizzo della CPU?<br>
    <br>
    --<br>
    <div class="moz-signature">
      Mazilu Teodor "Technical GanXta"<br>
      IT afficionado & FOSS evangelist</div>
    <br>
    <div style="bottom: auto; left: 0px; right: auto; top: 0px; display:
      none;" class="translator-theme-default"
      id="translator-floating-panel">
      <div title="Click to translate"
        id="translator-floating-panel-button"></div>
    </div>
  </body>
</html>