Me gustaría saber la HZ del sistema, es decir, cuántos milisegundos hay un jiffy del código de Python.Python: cómo obtener el número de mili segundos por jiffy
Respuesta
No es USER_HZ
>>> import os
>>> os.sysconf_names['SC_CLK_TCK']
2
>>> os.sysconf(2)
100
que es el que utiliza el kernel para informar del tiempo en /proc
.
Desde el time(7)
página del manual:
El software de reloj, HZ, y jiffies
La precisión de diversas llamadas al sistema que establecen los tiempos de espera, (por ejemplo, select (2), sigtimedwait (2)) y medir el tiempo de CPU (por ejemplo, getrusage (2)) está limitado por la resolución del reloj del software, un reloj mantenido por el kernel que mide el tiempo en jiffies. El tamaño de un jiffy es determinado por el valor de la constante de kernel HZ.
El valor de HZ varía según las versiones del núcleo y las plataformas de hardware. En i386 la situación es la siguiente: en kernels hasta e incluyendo 2.4.x, HZ era 100, dando un valor de jit de 0.01 segundos; comenzando con 2.6.0, HZ se elevó a 1000, dando un jiffy de 0.001 segundos. Desde kernel 2.6.13, el valor HZ es un parámetro de configuración del kernel y puede ser 100, 250 (valor predeterminado) o 1000, produciendo un valor de jiffies de, respec- activa, 0.01, 0.004 o 0.001 segundos. Desde kernel 2.6.20, hay disponible una frecuencia adicional de : 300, un número que se divide de manera uniforme para las velocidades de cuadro de video com (PAL, 25 HZ; NTSC, 30 HZ).
La llamada al sistema times (2) es un caso especial. Informa los tiempos con una granularidad definida por la constante de kernel USER_HZ. Aplicación de espacio de usuario: ciones puede determinar el valor de esta constante usando sysconf (_SC_CLK_TCK).
Si es absolutamente necesario saber SYSTEM_HZ:
>>> from ctypes import *
>>> rt = CDLL('librt.so')
>>> CLOCK_REALTIME = 0
>>> class timespec(Structure):
... _fields_ = [("tv_sec", c_long), ("tv_nsec", c_long)]
...
>>> res = timespec()
>>> rt.clock_getres(CLOCK_REALTIME, byref(res))
0
>>> res.tv_sec, res.tv_nsec
(0, 4000250)
>>> SYSTEM_HZ = round(1/(res.tv_sec + (res.tv_nsec/10.0**9)))
Da 250 en mi portátil (que suena bastante bien) y 1000 millones en una máquina virtual ...
Estoy tratando de calcular algunas cosas basadas en jiffies que realmente deberían estar en ms. Entonces, si conoce el equivalente de HZ, entonces jiffies * 1000/os.sysconf (2) = ms. Al menos eso pienso. – Murgh
¿De dónde vienen tus jiffies? también, tu ecuación es extraña. – hop
jiffies provienen de stime, utime y otras propiedades relacionadas con el tiempo que se encuentran en/proc/stat y archivos similares. La ecuación proviene de unixtop.org. elapsed = timediff.tv_sec * HZ + (timediff.tv_usec * HZ)/1000000; Como HZ no está disponible en Python, estaba buscando la alternativa. – Murgh
sysconf (SC_CLK_TCK) no da la frecuencia del temporizador interrumpe en Linux. Da la frecuencia de jiffies que es visible para el espacio de usuario en cosas como los contadores en varios directorios en/proc
La frecuencia real está oculta del espacio de usuario, deliberadamente. De hecho, algunos sistemas usan tics dinámicos o sistemas "tickless", por lo que no hay realmente ninguno.
Todas las interfaces del espacio de usuario usan el valor de SC_CLK_TCK, que, por lo que puedo ver, siempre es 100 en Linux.
no, creo que el valor depende de la arquitectura – hop
Sí, depende de la arquitectura y está codificado en 100 en la mayoría de las arquitecturas (aunque quizás no todas) en kernels recientes. – MarkR
OK, deja que guarden sus secretos. Solo quería saber por qué necesito multiplicar los valores de '/ proc/stat' y'/proc/
me escribió esto:
https://github.com/peppelinux/xt_recent_parser
salida es la siguiente:
python3 xt_recent_parser.py
XT_RECENT python parser
<[email protected]>
114.241.108.160, last seen: 2017-03-25 18:21:42 after 13 Connections
46.165.210.17, last seen: 2017-03-25 13:07:54 after 10 Connections
61.53.219.162, last seen: 2017-03-25 17:39:17 after 20 Connections
179.37.141.232, last seen: 2017-03-25 18:08:23 after 2 Connections
114.42.117.39, last seen: 2017-03-25 13:22:14 after 18 Connections
177.12.84.234, last seen: 2017-03-25 16:22:14 after 17 Connections
creo que será fácil de editar si es necesario la conversión milisegundo, es suficiente para extender JiffyTimeConverter Python clase
- 1. cálculo de tiempo de pitón (mili segundos)
- 2. Conversión de jiffies a mili segundos
- 3. Obtenga el número de segundos desde
- 4. .NET constante por el número de segundos en un día?
- 5. ¿Cómo obtener el número de semana en Python?
- 6. python: obtener el número sin decimales
- 7. cómo obtener el número de segundos transcurridos desde 1970 para un valor de fecha?
- 8. ¿Cómo obtener minutos, segundos y milisegundos desde datetime.now() en python?
- 9. en Python, ¿cómo dividir un número por el punto decimal
- 10. ¿Cómo obtener el nombre de valor de protobuf enum de mayor nivel por número en python?
- 11. Cómo obtener segundos transcurridos desde la medianoche
- 12. Cómo obtener el número de filas insertadas por una transacción
- 13. Cómo obtener el desplazamiento UTC en segundos en Android
- 14. fracción de segundos de Python
- 15. Obtener línea Número de cierta frase en el archivo Python
- 16. ¿Cómo obtener el número de línea actual?
- 17. encuentra la diferencia de tiempo en segundos como un número entero con python
- 18. Cómo obtener el número de SKU
- 19. ¿Cómo obtener el número de filas afectadas en sqlalchemy?
- 20. función para convertir el tiempo en número de segundos
- 21. ¿Cubre el número de Python?
- 22. ¿Separar cadena y obtener el número en python?
- 23. Cómo puedo obtener el nombre de contacto con su número
- 24. ¿Cómo obtener programáticamente el número de revisión SVN?
- 25. ¿Cómo obtener el número IMEI en PhoneGap?
- 26. ¿Cómo encontrar el número de línea del cursor en Python?
- 27. ¿Cómo obtener el número de línea de función (con/sin decorador) en un módulo de python?
- 28. Cálculo de FLOPS (Operaciones de coma flotante por segundos)
- 29. ¿Cómo puedo obtener recursos por su nombre (cadena) y no por el número entero
- 30. jquery obtener el número de id
¿qué es un jiffy? – knitti
el intervalo de interrupción del temporizador, que determina la precisión de todas las operaciones de espera del hilo, etc. –
@knitti, "Voy a conseguir eso para ti en un santiamén". Creo que es igual a "muy rápido". – jlafay