Страницы

Поиск по вопросам

Показаны сообщения с ярлыком счетчики. Показать все сообщения
Показаны сообщения с ярлыком счетчики. Показать все сообщения

воскресенье, 8 марта 2020 г.

Получить счетчики производительности

#c_sharp #производительность #счетчики #мониторинг


Мне необходимо получить данные системы как в мониторинге ресурсов Windows. А именно
работу каждого процесса с файлами и статистику. Данные из верхней таблице нашел через
GetPidIoCounters и структуру IO_COUNTERS а вот данные из нижней сетки не получается.


    


Ответы

Ответ 1



1) Через WMI, класс Win32_Process, как с ним работать написано тут и тут 2) Через PerformanceCounter void Main() { Process p = Process.GetProcesses()[0]; PerformanceCounter ramCounter = new PerformanceCounter("Process", "Working Set", p.ProcessName); PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", p.ProcessName); PerformanceCounter privateCounter = new PerformanceCounter("Process", "Private Bytes", p.ProcessName); while (true) { Thread.Sleep(1000); double ram = ramCounter.NextValue(); double cpu = cpuCounter.NextValue(); double privateBytes = privateCounter.NextValue(); Console.WriteLine("RAM: "+(ram/1024/1024)+" MB; CPU: "+(cpu)+" %; " + privateBytes/1024/1024 + " MB"); } }

Ответ 2



Вам нужен класс PerfomanceCounter: Примерно так будет: foreach(var process in Process.GetProcesses()) { PerformanceCounter pcRead = new PerformanceCounter("Process", "IO Write Bytes/sec", process.ProcessName); PerformanceCounter pcWrite = new PerformanceCounter("Process", "IO Read Bytes/sec", process.ProcessName); Console.WriteLine($"Read: {pcRead.NextValue()} + %"); Console.WriteLine($"Write: {pcWrite.NextValue()} + %"); } Пример описание использования Список категорий для процессов

понедельник, 6 января 2020 г.

Как посчитать время потраченное на выполнение задания?

#java #android #время #счетчики


Пишу маленькое приложение на Android на Java. У меня пользователи в одном активити
проходят тест и, по завершению теста, открывается следующее активити, в которое передается
итоговая инфа по прохождению теста. Так вот, одно из полей - это потраченное время
на задание... я пробую считать время хронометром, но он в миллисекундах считает и потом
форматировать через различные проверки в формат 00:00 (02 : 34), очень костыльно получается...
Я уверен, что есть более изящное решение... 

Как это можно сделать?
    


Ответы

Ответ 1



В начале задания сохраняйте текущее время в long переменную: long startTime = System.currentTimeMillis(); После окончания получайте разницу: long totalTime = System.currentTimeMillis() - startTime; Берём класс Calendar и присваиваем ему полученное значение: Calendar cal = Calendar.getInstance(); cal.setTimeInMillis( totalTime ); Получаем минуты/секунды (без нулей в начале): int minutes = cal.get(Calendar.MINUTE); int seconds = cal.get(Calendar.SECOND); или в форматированном виде с помощью класса SimpleDateFormat SimpleDateFormat format = new SimpleDateFormat("mm:ss"); System.out.println(format.format(cal.getTime()));

вторник, 31 декабря 2019 г.

Как стилизовать элемент счетчика?

#html #css #счетчики #изображения


  • 24
  • Как можно получить такой элемент как на картинке с помощью css (белая полоска зачеркивания идет перед цифрой)? P.S.: цифры при этом меняются динамически


    Ответы

    Ответ 1



    span { display: inline-block; background: #ffd800; font: 20px/1 Arial; width: 20px; border-radius: 5px; } span:before { content: ''; display: block; position: relative; top: 11px; left: 0; width: 20px; height: 2px; background: #fff; } 24

    Ответ 2



    span.days { font-family: Arial, sans-serif; font-size: 22px; font-weight: bold; line-height: 22px; display: inline-block; width: 36px; padding: 7px 0; background: #FCDB00; text-align: center; border-radius: 5px; position: relative; } span.days:before { position: absolute; width: 36px; height: 1px; content: ''; top: 50%; left: 0; background: white; }
    • 24


    понедельник, 30 декабря 2019 г.

    Игнорируется часть кликов

    #c_sharp #счетчики #click

    
    На днях понадобилось написать программу, которая считает количество кликов, совершенных
    человеком. Однако заметил, что отлавливается не каждый клик: если человек совершает
    хотя бы 2-3 щелчка в секунду, часть точно будет проигнорирована. Как с таким бороться?
    Отлавливаю с помощью элементарной
    
    private void opg_Click(object sender, EventArgs e)
    {
        count++;
    }
    
        
    


    Ответы

    Ответ 1



    Скорее всего, когда пользователь делает 2-3 клика в секунду, то это воспринимается системой как двойной клик (отдельное от обычного клика событие). Попробуйте добавить: private void opg_DoubleClick(object sender, EventArgs e) { count = count + 1; } Также разницу поясняет справка от мелкомягких.

    Ответ 2



    Можно проще. Подпишитесь на событие MouseUp (или MouseDown).

    Ответ 3



    Нужно запретить обработку двойных кликов. Это можно сделать убрав соответствующий флаг из класса при создании формы: public partial class Form1 : Form { public Form1() { InitializeComponent(); } private int clicks = 0; protected override CreateParams CreateParams { get { const int CS_DBLCLKS = 0x8; CreateParams cp = base.CreateParams; cp.ClassStyle &= ~CS_DBLCLKS; return cp; } } private void Form1_Click(object sender, EventArgs e) { this.Text = (++clicks).ToString(); } }

    четверг, 14 февраля 2019 г.

    Как посчитать время потраченное на выполнение задания?

    Пишу маленькое приложение на Android на Java. У меня пользователи в одном активити проходят тест и, по завершению теста, открывается следующее активити, в которое передается итоговая инфа по прохождению теста. Так вот, одно из полей - это потраченное время на задание... я пробую считать время хронометром, но он в миллисекундах считает и потом форматировать через различные проверки в формат 00:00 (02 : 34), очень костыльно получается... Я уверен, что есть более изящное решение...
    Как это можно сделать?


    Ответ

    В начале задания сохраняйте текущее время в long переменную:
    long startTime = System.currentTimeMillis(); После окончания получайте разницу:
    long totalTime = System.currentTimeMillis() - startTime; Берём класс Calendar и присваиваем ему полученное значение:
    Calendar cal = Calendar.getInstance(); cal.setTimeInMillis( totalTime ); Получаем минуты/секунды (без нулей в начале):
    int minutes = cal.get(Calendar.MINUTE); int seconds = cal.get(Calendar.SECOND);
    или в форматированном виде с помощью класса SimpleDateFormat
    SimpleDateFormat format = new SimpleDateFormat("mm:ss"); System.out.println(format.format(cal.getTime()));

    четверг, 27 декабря 2018 г.

    Как стилизовать элемент счетчика?

  • 24

  • Как можно получить такой элемент как на картинке с помощью css (белая полоска зачеркивания идет перед цифрой)?
    P.S.: цифры при этом меняются динамически


    Ответ

    span { display: inline-block; background: #ffd800; font: 20px/1 Arial; width: 20px; border-radius: 5px; } span:before { content: ''; display: block; position: relative; top: 11px; left: 0; width: 20px; height: 2px; background: #fff; } 24

    пятница, 14 декабря 2018 г.

    Игнорируется часть кликов

    На днях понадобилось написать программу, которая считает количество кликов, совершенных человеком. Однако заметил, что отлавливается не каждый клик: если человек совершает хотя бы 2-3 щелчка в секунду, часть точно будет проигнорирована. Как с таким бороться? Отлавливаю с помощью элементарной
    private void opg_Click(object sender, EventArgs e) { count++; }


    Ответ

    Скорее всего, когда пользователь делает 2-3 клика в секунду, то это воспринимается системой как двойной клик (отдельное от обычного клика событие).
    Попробуйте добавить:
    private void opg_DoubleClick(object sender, EventArgs e) { count = count + 1; }
    Также разницу поясняет справка от мелкомягких