Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Funcion Que Dice La Carga Del Procesador
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Funcion Que Dice La Carga Del Procesador 
 
Hola.

He hecho esta función que averigua la carga del procesador "leyendo" /proc/cpuinfo y usando el comando ps.

Public Function funSystemLoad() As Float '' Devuelve la carga del procesador de 0 a 100

  Dim strSysLoad As String
  Dim strSysCores As String
  Dim floSysCores As Float
  Dim floSysLoad As Float
  Dim stxSysLoad As New String[]
  Dim intL As Integer

  Shell "cat /proc/cpuinfo | grep 'cpu cores' 2>&1" To strSysCores
  Shell "ps -eo pcpu 2>&1" To strSysLoad

  strSysCores = Split(strSysCores, "\n")[0]
  strSysCores = Replace(strSysCores, " ", "")
  strSysCores = Split(strSysCores, ":")[1]

  floSysCores = CFloat(strSysCores)

  strSysLoad = Replace(strSysLoad, "%CPU\n ", "")
  strSysLoad = Replace(strSysLoad, "\n ", "\n")

  stxSysLoad = Split(strSysLoad, "\n")
  For intL = 0 To stxSysLoad.Max

    If stxSysLoad[intL] <> "" Then
      floSysLoad = floSysLoad + CFloat(stxSysLoad[intL])
    Endif

  Next
  ' A mas canntidad de nucleos el promedio sera mas bajo
  If floSysCores <> 0 Then
    floSysLoad = floSysLoad / floSysCores
  Endif

  Return floSysLoad

End

 


La vengo depurando desde hace un tiempo, así que espero que funcione bien en todos los ñús , por favor si alguien la prueba en su sistema comente si le funciono bien y en que sistema se probo.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
Me trae a la mente este:

https://foro.gambas-es.org/viewtopic.php?f=6&t=5129
 



 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
vuott escribió: [Ver mensaje]
Me trae a la mente este:

https://foro.gambas-es.org/viewtopic.php?f=6&t=5129

Si, en ese post Shordi nos ilustro con varias funciones que escribió su discípulo, pero la de carga del procesador no estaba entre ellas.

Yo estoy juntando todas estas funciones en un modulo, que a su vez voy depurando, para poder copiarlo en cada proyecto y disponer así de todas la funciones de "sistema".

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
Tincho:

He probado tu subrutina, añadiendo en el fmain la siguiente funcion principal:
Public Sub Form_Open()

  Dim a As Integer

  For a = 0 To 10
    Print ModuleCpu.funSystemLoad()
    Wait 1
  Next

End


Pero me dá valores medios superiores, fijate en esta captura:

 cpu_medida

Con un script que tengo de conky, la carga daba 30 y 40 %, con el comando htop, daba 30%, pero con tu subrutina daba entre 40 y 50.

Me da la sensación que tu subrutina da un valor más alto...
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
ok, luego leer un poco el manual de ps he encontrado, creo, la razón por la que la carga era execrativa con respecto a conky y demás.
El tema es que estaba sumando la carga de procesos que no estaban asignados a algún procesador o "core" por lo tanto no se trataba de carga real, así que esas cargas ahora no son sumadas al total.
Dejo un ejemplo para verificar mas cómodamente el uso de esta función.

El comando ps esta interesante, tal vez amplíe la función para que entregue una array de parámetros CPU, RAM etc.

Saludos.

ejercicio-carga-del-cpu-0.0.1.tar.gz
Descripción: Ejemplo del uso de la función. 
Descargar
Nombre del archivo: ejercicio-carga-del-cpu-0.0.1.tar.gz
Tamaño: 11.96 KB
Descargado: 40 veces
ejercicio-carga-del-cpu-0.0.1.tar.gz
Descripción: Ejemplo del uso de la función. 
Descargar
Nombre del archivo: ejercicio-carga-del-cpu-0.0.1.tar.gz
Tamaño: 11.96 KB
Descargado: 40 veces
ejercicio-carga-del-cpu-0.0.1.tar.gz
Descripción: Ejemplo del uso de la función. 
Descargar
Nombre del archivo: ejercicio-carga-del-cpu-0.0.1.tar.gz
Tamaño: 11.96 KB
Descargado: 40 veces

 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
Tincho:

 carga_cpu

Sigo viendo diferencias, he mirado un rato, y lo que va marcando el Htop de % cpu, casi nunca coincide con lo que marca el programa.

Tambien supongo que será dificil ver el % de cpu que se esta consumiendo, cuando la medición depende de los recursos que estes ejecutando en ese momento.

Por curiosidad he abierto 4 terminales con htop ejecutandose a la vez, y también se observan diferencias entre ellos      :
 varios_htop
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Funcion Que Dice La Carga Del Procesador 
 
jsbsan escribió: [Ver mensaje]

Por curiosidad he abierto 4 terminales con htop ejecutandose a la vez, y también se observan diferencias entre ellos     

He hecho lo mismo, abrir cuatro terminales y sucede algo similar nada coincide. supongo que cada proceso htop no puede acceder a la vez a proc de linux, habrá un pequeña diferencia de tiempo de acceso y como esto es miles o millones de instrucciones por segundo no lo se, la variación es imposible de acotar con exactitud.
De momento lo estoy usando para verificas como va la carga del procesador antes de mandar instrucciones shell para procesar imágenes y esperar si es que esta a tope el cpu.
Así que por el momento me conformare con el desempeño actual.
Tal vez estos programas que analizan carga memoria etc, hagan una integracion o derivacion de la curva antes de dar un valor, algo parecido al control PID de procesos industriales.

Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron