Сайт | Скачать | Видео | Wiki

Автор Тема: Тесты скорости браузеров  (Прочитано 5807 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн forthuser

  • Постоялец
  • ***
  • Сообщений: 128
  • Репутация: +2/-0
Re: Тесты скорости браузеров
« Ответ #15 : 03 Ноябрь 2023, 10:26:51 »
Потому, что в Pale Moon ап. ускорения вообще нет
Показывает эффективность задействования одного ядра того или иного процессора в окружении OC?

Скрипты показа текущего процента использования процессора
Bash
Код
#!/bin/bash
# by Paul Colby (http://colby.id.au), no rights reserved ;)

PREV_TOTAL=0
PREV_IDLE=0

while true; do
  # Get the total CPU statistics, discarding the 'cpu ' prefix.
  CPU=($(sed -n 's/^cpu\s//p' /proc/stat))
  IDLE=${CPU[3]} # Just the idle CPU time.

  # Calculate the total CPU time.
  TOTAL=0
  for VALUE in "${CPU[@]:0:8}"; do
    TOTAL=$((TOTAL+VALUE))
  done

  # Calculate the CPU usage since we last checked.
  DIFF_IDLE=$((IDLE-PREV_IDLE))
  DIFF_TOTAL=$((TOTAL-PREV_TOTAL))
  DIFF_USAGE=$(((1000*(DIFF_TOTAL-DIFF_IDLE)/DIFF_TOTAL+5)/10))
  echo -en "\rCPU: $DIFF_USAGE%  \b\b"

  # Remember the total and idle CPU times for the next check.
  PREV_TOTAL="$TOTAL"
  PREV_IDLE="$IDLE"

  # Wait before checking again.
  sleep 1
done
[свернуть]

На Perl не рабочий т.к. показывает только правильно одно первое значение
Perl
Код
#! /usr//bin/perl
$last_total = 0;
$last_idle  = 0;

while () {
    @cpu = split /\s+/, `head -1 /proc/stat`;
    shift @cpu;
    $this_total  = 0;
    $this_total += $_ for @cpu;
    $delta_total = $this_total - $last_total;
    $this_idle   = $cpu[3]     - $last_idle;
    $delta_idle  = $this_idle  - $last_idle;
    $last_total  = $this_total;
    $last_idle   = $this_idle;
    printf "Utilization: %0.1f%%\n", 100 * (1 - $delta_idle / $delta_total);
    sleep 1;
}
[свернуть]

На Awk запуск
Код
awk -f  cpu.awk
Спойлер
Код
BEGIN {
  prev_total = 0
  prev_idle = 0
  while (getline < "/proc/stat") {
    close("/proc/stat")
    idle = $5
    total = 0
    for (i=2; i<=NF; i++)
      total += $i
    print (1-(idle-prev_idle)/(total-prev_total))*100"%"
    prev_idle = idle
    prev_total = total
    system("sleep 1")
  }
}
[свернуть]

На Python у меня не запустился
Спойлер
Код
from __future__ import print_function
from time import sleep


last_idle = last_total = 0
while True:
    with open('/proc/stat') as f:
        fields = [float(column) for column in f.readline().strip().split()[1:]]
    idle, total = fields[3], sum(fields)
    idle_delta, total_delta = idle - last_idle, total - last_total
    last_idle, last_total = idle, total
    utilisation = 100.0 * (1.0 - idle_delta / total_delta)
    print('%5.1f%%' % utilisation, end='\r')
    sleep(5)
[свернуть]

P.S. Скрипты взяты с rosettacode.org - задачи по выводу информации о загрузке процессора на Linux в решении на разных языках программирования.
« Последнее редактирование: 03 Ноябрь 2023, 10:43:14 от forthuser »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Тесты скорости браузеров
« Ответ #16 : 03 Ноябрь 2023, 10:42:07 »
задачи по выводу информации о загрузке процессора
А чем htop не угодил?

Оффлайн forthuser

  • Постоялец
  • ***
  • Сообщений: 128
  • Репутация: +2/-0
Re: Тесты скорости браузеров
« Ответ #17 : 03 Ноябрь 2023, 10:49:24 »
задачи по выводу информации о загрузке процессора
А чем htop не угодил?
Интерес к показу только одного суммарного процента задействования процессора для таких вот измерений как тема топика,
 хотя htop, вероятно, более правильные проценты показывает в разрезе использования всех подсистем/компонентов ОС.
« Последнее редактирование: 03 Ноябрь 2023, 11:10:09 от forthuser »

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
Re: Тесты скорости браузеров
« Ответ #18 : 03 Ноябрь 2023, 16:04:08 »
Интерес к показу только одного суммарного процента задействования процессора для таких вот измерений как тема топика,
я такой скрипт использую ,после запуска браузера, например firefox запускаю скрипт sum_usage_2.sh firefox , и показывает сумарное в процентах процесора и мегабайт памяти так например: ~$sum_usage_2.sh' firefox
Процент CPU: 20.7% | Память: 653.562MB
вот скрипт
Код
#!/bin/bash

# Проверяем, что передан аргумент (название программы)
if [ $# -ne 1 ]; then
  echo "Использование: $0 <название_программы>"
  exit 1
fi

program_name=$1

while true; do
  # Ищем все процессы с указанным именем
  pids=$(pgrep $program_name)

  if [ -n "$pids" ]; then
    # Используем ps для получения информации о ресурсах для найденных процессов
    cpu_usage=$(ps -p $pids -o %cpu | tail -n +2 | awk '{s+=$1} END {print s}')
    mem_usage=$(ps -p $pids -o rss | tail -n +2 | awk '{s+=$1} END {print s/1024}') # В мегабайтах

    echo -e "\rПроцент CPU: $cpu_usage% | Память: ${mem_usage}MB"
  else
    echo -e "\rПрограмма $program_name не запущена"
  fi

  # Ждем перед следующей проверкой
  sleep 1
done

машина слабенькая вот что говорит inxi
CPU: Dual Core Intel Core2 6400 (-MCP-) speed/min/max: 1704/1600/2133 MHz
Kernel: 5.10.0-16-amd64 x86_64 Up: 2h 37m Mem: 2636.2/3929.8 MiB (67.1%)
Storage: 232.89 GiB (34.9% used) Procs: 214 Shell: Bash inxi: 3.3.01


использовал для оценки разницы нового midori который теперь на движке geko , и который вроде  меньше жрёт рессурсов  .
upd:после запуска скрипт нужно остановить, браузер использовать , минут пять потом опять запустить, при первом запуске скрипта, почему то показывает сильную нагрузку процессора, я думаю это в связи с тем что не прогрузились все процессы связанные с браузером,но потом нагрузка на процессор падает. скрипт в общем можно и не останавливать  будет пказывать нагрузку в реальном времени.
для midori вот рез теста после 5 минут запуска браузера
Процент CPU: 21.7% | Память: 401.746MB вроде разница есть
открыл начальную страницу Yandex Dzen  она забита JS ,  еще две текстовые страницы страницы, того же Дзен и две страницы форума . ... и если не подгружать страницы то потребление ресурсов процессора падает что в midori что в firefox

только вот ничего не понимаю теперь после перезапуска firefox показывает
Процент CPU: 13.8% | Память: 403.395MB
то есть нет особых оптимизаций в midori просто еще одна пересборка с дополнительными функциями?
Я думаю что для чистоты экспериманта процессы нужны убивать  killall -9. ... ща отпишусь...
...по моему midori судя по всему тот же firefox с перекрашеным шильдиком, и с возможностью менять шкурки, и с добавлением некоторых дополнительных возможностей, в общем я пока ещё присмотрюсь и потестю его.
« Последнее редактирование: 03 Ноябрь 2023, 17:02:07 от totiks2012 »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Тесты скорости браузеров
« Ответ #19 : 07 Ноябрь 2023, 10:36:34 »
использовал для оценки разницы нового midori который теперь на движке geko , и который вроде  меньше жрёт рессурсов  .
В настройках можно настроить производительность. При "экономии памяти" midori ест чуть больше обычного ffox.
Ваш скрипт у меня не заработал. Поправил
Код
#!/bin/bash

# Проверяем, что передан аргумент (название программы)
if [ $# -ne 1 ]; then
  echo "Использование: $0 <название_программы>"
  exit 1
fi

program_name=$1

while true; do
  # Ищем все процессы с указанным именем
##  pids=$(pgrep $program_name)
  pids=$(echo `pgrep $program_name`)

  if [ -n "$pids" ]; then
    # Используем ps для получения информации о ресурсах для найденных процессов
##    cpu_usage=$(ps -p $pids -o %cpu | tail -n +2 | awk '{s+=$1} END {print s}')
    cpu_usage=$(ps -p "$pids" -o %cpu | tail -n +2 | awk '{s+=$1} END {print s}')
##    mem_usage=$(ps -p $pids -o rss | tail -n +2 | awk '{s+=$1} END {print s/1024}') # В мегабайтах
    mem_usage=$(ps -p "$pids" -o rss | tail -n +2 | awk '{s+=$1} END {print s/1024}') # В мегабайтах

    echo -e "\rПроцент CPU: $cpu_usage% | Память: ${mem_usage}MB"
  else
    echo -e "\rПрограмма $program_name не запущена"
  fi

  # Ждем перед следующей проверкой
  sleep 5 ##
done

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
Re: Тесты скорости браузеров
« Ответ #20 : 07 Ноябрь 2023, 14:38:07 »
Ваш скрипт у меня не заработал. Поправил
странно у меня работает, но не суть...

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5331
  • Репутация: +139/-1
Re: Тесты скорости браузеров
« Ответ #21 : 07 Ноябрь 2023, 14:59:02 »
у меня работает
У меня тоже. Похоже sfs избавляется от конкуренции начинающих скриптописателей. :)

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Тесты скорости браузеров
« Ответ #22 : 07 Ноябрь 2023, 15:37:02 »
Похоже sfs избавляется от конкуренции начинающих скриптописателей
У меня в прар 2110 так
Код
# ./sum_usage_2.sh  yandex_browser
error: process ID list syntax error

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).
error: process ID list syntax error

Usage:
 ps [options]

 Try 'ps --help <simple|list|output|threads|misc|all>'
  or 'ps --help <s|l|o|t|m|a>'
 for additional help text.

For more details see ps(1).
Процент CPU: % | Память: 0MB
error: process ID list syntax error

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5331
  • Репутация: +139/-1
Re: Тесты скорости браузеров
« Ответ #23 : 07 Ноябрь 2023, 16:09:32 »
Так это к вопросу, на чем тестировался скрипт. О таких вещах надо сразу говорить. )

totiks2012 проверял на firefox и midori, и похоже все. Получается для хромиеподобных надо скрипт доработать.

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Тесты скорости браузеров
« Ответ #24 : 07 Ноябрь 2023, 16:51:48 »
проверял на firefox и midori
Дело не в этом. У меня с любой прогой так. ps он везде ps

Оффлайн krasnyh

  • Ветеран
  • *****
  • Сообщений: 5331
  • Репутация: +139/-1
Re: Тесты скорости браузеров
« Ответ #25 : 07 Ноябрь 2023, 17:08:09 »
Я проверял, с firefox нормально отрабатывает. А вот с yandex_browser - там куча PID, на которые скрипт не рассчитан.

Проверялось и на образцовом prar2210-23.05-x86_64.iso в вирте. С firefox - ok, т.к. у него один PID. А вот для yandex_browser - находит 16 PID (количество).


Короче, totiks2012 доработает с учетом новой информации, заодно потренируется сам и потренирует ChatGPT.  :) Или возьмет куски кода от sfs.
« Последнее редактирование: 07 Ноябрь 2023, 17:13:56 от krasnyh »

Оффлайн sfs

  • Администратор
  • Ветеран
  • ****
  • Сообщений: 33972
  • Репутация: +231/-0
  • Автор темы
    • PuppyRus-A
Re: Тесты скорости браузеров
« Ответ #26 : 07 Ноябрь 2023, 17:31:22 »
там куча PID, на которые скрипт не рассчитан.
Тогда дело раскрыто
куски кода от sfs
Я поправил только несколько строк, пометив старые ##

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
Re: Тесты скорости браузеров
« Ответ #27 : 08 Ноябрь 2023, 11:17:28 »
Короче, totiks2012 доработает с учетом новой информации, заодно потренируется сам и потренирует ChatGPT.
простите что не ответил сразу, грипую...
дык вроде sfs исправил
насчет новых задач я только за...
хромоподрбными не пользуюсь но если надо, то установлю и потестю.
Если есть новые идеи для реализации , не обязательно связаные с этим скриптом, я только за , у меня идеи исякли...
« Последнее редактирование: 08 Ноябрь 2023, 12:23:36 от totiks2012 »

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
Re: Тесты скорости браузеров
« Ответ #28 : 08 Ноябрь 2023, 11:20:51 »
Дело не в этом. У меня с любой прогой так. ps он везде ps

Всё нормально оба скрипта у меня работают например для cpu-x
Код
/home/live/DEV/bash/sum_usage/sum_usage_2.sh' cpu-x
+ '[' 1 -ne 1 ']'
+ program_name=cpu-x
+ true
++ pgrep cpu-x
+ pids=5600
+ '[' -n 5600 ']'
++ ps -p 5600 -o %cpu
++ awk '{s+=$1} END {print s}'
++ tail -n +2
+ cpu_usage=8.9
++ tail -n +2
++ ps -p 5600 -o rss
++ awk '{s+=$1} END {print s/1024}'
+ mem_usage=47.3906
+ echo -e '\rПроцент CPU: 8.9% | Память: 47.3906MB'
Процент CPU: 8.9% | Память: 47.3906MB
+ sleep 1

насчет pid понял принял уже в движении
« Последнее редактирование: 08 Ноябрь 2023, 11:39:27 от totiks2012 »

Оффлайн totiks2012

  • Ветеран
  • *****
  • Сообщений: 872
  • Репутация: +23/-0
Re: Тесты скорости браузеров
« Ответ #29 : 08 Ноябрь 2023, 12:02:48 »
вот код который учитывает суму всех pid
Код
#!/bin/bash

# Проверяем, что передан аргумент (название программы)
if [ $# -ne 1 ]; then
  echo "Использование: $0 <название_программы>"
  exit 1
fi

program_name=$1

while true; do
  # Ищем все процессы с указанным именем
  pids=$(pgrep $program_name)

  if [ -n "$pids" ]; then
    # Используем ps для получения информации о ресурсах для найденных процессов
    cpu_usage=0
    mem_usage=0

    for pid in $pids; do
      cpu_usage_pid=$(ps -p $pid -o %cpu | tail -n +2 | awk '{s+=$1} END {print s}')
      mem_usage_pid=$(ps -p $pid -o rss | tail -n +2 | awk '{s+=$1} END {print s/1024}') # В мегабайтах

      cpu_usage=$(echo "$cpu_usage + $cpu_usage_pid" | bc)
      mem_usage=$(echo "$mem_usage + $mem_usage_pid" | bc)
    done

    echo -e "\rПроцент CPU: $cpu_usage% | Память: ${mem_usage}MB"
  else
    echo -e "\rПрограмма $program_name не запущена"
  fi

  # Ждем перед следующей проверкой
  sleep 5
done


перед запуском скрипта необходимо запустить pgrep -c <имя-программы> чтоб убедится и увидеть сколько pid возвращает программа, в случае с yandex-browser необходимо было ввести только yandex например
Код
 pgrep -c yandex

также и с запуском  скрипта
Код
sum_usage_3.sh yandex

и покажет процент cpu| потребление памяти
если подтвердите что скрипт работает можно устроить соревнование браузеров, мне ппц как интересно стало. ... появился инструмент для сравнения. не знаю насколько обьективный.
upd: теперь после использования этого скрипта стало понятно почему у меня система при использовании yandex-browser переодически вешается, он дюже требователен до оперативной памяти, а на рабочей машине её мало, 4 гиг, 5 вкладок, и уже 3 гига почти забиты... О_О
« Последнее редактирование: 08 Ноябрь 2023, 12:08:25 от totiks2012 »