1. Perl / Говнокод #22317

    −98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    #!/usr/bin/perl
    #
    # Plugin to monitor CPU frequency scaling via time_in_state
    #
    # Origional Author: Kamen Naydenov @pau4o
    # Contributors:
    #
    #
    #
    use strict;
    use warnings;
    
    
    my $data_file = '/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state';
    
    if ($ARGV[0] and $ARGV[0] eq "autoconf") {
      if (-r "$data_file") {
        print "yes\n";
        exit 0;
      } else {
        print $data_file, " not found\n";
        exit 1;
      }
    }
    
    my (%cpufreq_stats, $cpufreq, $freq, $total_time, $graphOrder, $firstOne);
    &fetch_info;
    
    if ($ARGV[0] and $ARGV[0] eq "config") {
      print 'graph_args --base 1000 -l 0 -u 100', "\n";
      print 'graph_vlabel %', "\n";
      print 'graph_scale no', "\n";
      print 'graph_title CPU scaling statistics', "\n";
      print 'graph_category system', "\n";
      print 'graph_info This graph shows how much time CPU spend in each supported frequency.', "\n";
    
      foreach $freq (sort { $b <=> $a } keys %cpufreq_stats) {
        $graphOrder .= 'cpu_at_' . $freq . ' ';
        print 'cpu_at_', $freq, '.label ', $freq, "\n";
        print 'cpu_at_', $freq, '.info Time spend using frequency of ', $freq, " Hz \n";
        print 'cpu_at_', $freq, '.min 0', "\n";
        print 'cpu_at_', $freq, '.max 100', "\n";
    #     if ($firstOne) {
    #       print $freq, ".draw STACK\n";
    #     } else {
    #       print $freq, ".draw AREA\n";
    #     }
    #     $firstOne++;
      }
      print 'graph_order ', $graphOrder, "\n";
      exit 0;
    }
    
    foreach $cpufreq (sort { $b <=> $a } keys %cpufreq_stats ) {
      my $time_in_percent = $cpufreq_stats{"$cpufreq"} * 100 / $total_time;
      print 'cpu_at_', $cpufreq, '.value ', $time_in_percent, "\n";
    }
    
    
    sub fetch_info {
      open (IN, '<', "$data_file")
        or die "Could not open $data_file for reading: $!";
      while (<IN>) {
        if (/^(\d+)\s+(\d+)\s+/) {
          $cpufreq_stats{"$1"} = $2;
          $total_time += $2;
        }
      }
      close (IN) or die "$!";
    }

    Запостил: munin, 12 Февраля 2017

    Комментарии (24) RSS

    • Я код не читал, но он на перле, поэтому говно
      Ответить
    • Да сойдёт. Типичная парсилка-конвертилка на пёрле. Тыщи их.
      Ответить
    • Перл не знаю, но выглядит как обычный баш
      Ответить
      • скорее как пхп
        Ответить
        • Скорее как результат противоестественного соития баша и пэхапэ.
          Ответить
          • Скорее, эти языки вышли из Перла.
            Ответить
            • лучше бы они зашли обратно :(
              как это вообще можно читать? это каким больным ублюдком надо быть?
              Ответить
              • Никто не читает перл. Если тебе очень надо разобраться в перлокоде, ты пишешь для него парсилку-конвертилку на перле.
                Ответить
              • Это еще можно читать. Ты попробуй классы на нем сваять. Исключений так и нету.
                Ответить
                • > Исключений так и нету.
                  Есть же - die + eval { }.
                  Ответить
                  • показать все, что скрытоЭто не исключение, так же как твоя мамка не женщина.
                    Ответить
                    • Меня твои истории просто доебали уже, я уже не могу их слушать, блядь. Одна история охуительней другой, просто. Про говно, блядь. Про какую-то хуйню, малафью. Чё ты несёшь-то вообще? Ты можешь заткнуться?
                      Ответить
                      • @Одна история охуительней другой, просто. Про говно, блядь. Про какую-то хуйню, малафью. Чё ты несёшь-то вообще? Ты можешь заткнуться?

                        Братишка, ты ли это?
                        Ответить
                  • дая эвал!
                    Ответить
                • > Исключений так и нету.
                  Если в языке можно вызвать функцию по указателю, в нём возможны продолжения. А от них до исключений -- один шаг.
                  Ответить
                • Весь код на перле - говно. Исключений нету
                  Ответить
                  • нельзя из за 99% обо всем языке так!
                    Ответить
                    • Хотел въебать плюс, но промахнулся с телефона. Извени и держи плюсик в карму.
                      Ответить
              • Очень порадовал оператор <=>
                Ответить
              • > лучше бы они зашли обратно :(

                И сто́ит шаг пройти,
                Заносит время след.
                Обратного пути
                У жизни просто нет.
                Ответить
    • На самом деле я не понимаю чего все взбеленились
      я видел тыщу плагинов к мамину, и все они такие

      Ну да, для новичка тяжеловато, но осилить примерно три строки можно на любом ЯП, тем более если ты перловик
      Ответить
      • Не мамин, а Мунин.

        Хугин и Мунин
        над миром всё время
        летают без устали;
        мне за Хугина страшно,
        страшней за Мунина, —
        вернутся ли вороны!
        Ответить

    Добавить комментарий