Cuando se realiza la operación del sistema Linux, ya que el rendimiento del programa de prueba necesita, el tiempo debe ser exacto hasta el nivel ns, ¿cómo lograrlo? La siguiente serie pequeña le enseña cómo usar la función para lograr la adquisición de tiempo de nivel de usuario de Linux ns, aprendamos juntos.
I. Introducción
Con frecuencia tenemos que obtener información precisa de nivel ns de tiempo de los procedimientos de prueba de rendimiento para medir el rendimiento cuando un programa se describe a continuación en el espacio de usuario de Linux para obtener ns Método de nivel de tiempo
Segundo, espacio de usuario para obtener ns nivel de tiempo
Usando la función clock_gettime, el prototipo de función es el siguiente:
sys_clock_gettime largo (clockid_t which_clock, struct timespec * tp);
1.which_clock parámetro explicación
CLOCK_REALTIME: El tiempo en tiempo real del sistema cambia con el tiempo en tiempo real del sistema, es decir, a partir de UTC1970-1-1 0: 0: 0, si el sistema está en el momento intermedio El usuario cambia la hora y, en consecuencia, la hora correspondiente.
CLOCK_MONOTONIC: Inicia desde el momento en que se inicia el sistema, y no se ve afectado por la modificación de la hora del sistema por parte del usuario.
CLOCK_PROCESS_CPUTIME_ID: Este proceso es Tiempo gastado por la CPU del sistema de códigos actual
CLOCK_THREAD_CPUTIME_ID: tiempo gastado por el subproceso a la CPU del sistema de códigos actual
2.struct timespec estructura
El código es el siguiente:
struct timespec
{
time_t tv_sec;
long int tv_nsec;
};
El código de ejemplo es el siguiente:
El código es el siguiente:
#include "stdio.h"
#include "stdlib.h"
#include 《time.h》
int main (void)
{
struct timespec time_start = {0, 0}, time_end = {0, 0 };
clock_gettime (CLOCK_REALTIME, &time_start);
printf (" hora de inicio% llus,% llu ns \\ n ", time_start.tv_sec, time_start.tv_nsec);
clock_gettime (CLOCK_REALTIME, &time_end);
printf (" endtime% llus,% llu ns \\ n ", time_end.tv_sec, time_end.tv_nsec);
printf (&duquo; duración:% llus% lluns \\ n ", time_end.tv_sec-time_start.tv_sec, time_end.tv_nsec-time_start.tv_nsec);
return 0;
}
comando de compilación:
El código es el siguiente:
gcc test.c -o test -lrt
Resultado de ejecución:
El código es el siguiente:
. /test
hora de inicio 1397395863s, 973618673 ns
endtime 1397395863s, 973633297 ns
duration: 0s 14624ns
De los resultados en ejecución, puede ver que se llama a printf ( La función necesita aproximadamente 15 usus a la vez.
El método anterior para obtener el tiempo de nivel ns mediante el uso de funciones en Linux. Si necesita probar el rendimiento del programa a tiempo de nivel ns, puede probar el método descrito en este artículo. ¿No es muy simple?
Cuando los usuarios de Linux importan varios archivos a la base de datos, el proceso es engorroso. S
Cuando los usuarios de Linux desean ver el contenido de un directorio, ¿se pueden v
VirtualBox es un software de máquina virtual muy útil, por lo que ha sido buscado p
sistemas Linux a veces es necesario para detectar si una condición es verdadera, entonces debemos ut
Habilidades de operación de los comandos comunes de Linux (incluyendo vi /gdb)
Linux cómo usar clam antivirus antivirus
La función del parámetro -path -prune en el comando de búsqueda de Linux se introdujo en
Los pasos específicos para instalar Cobbler en Linux
Cómo Linux para la configuración del servidor FTP nube Ali
¿Qué pasa si CentOS usa MPlayer sin sonido?
¿Por qué un sistema Linux tiene permisos w pero no puede eliminar archivos?
Linux compila e instala el método MemcacheQ
Instalación de Linux usando Oracle confuso cómo hacerlo?
Linux cómo usar Eclipse para construir el entorno de desarrollo de Android
Linux cómo eliminar el valor de la variable de reemplazo
Cómo usar los comandos w y uptime para ver la tasa de uso del sistema Linux
¿Cómo agregar fuentes al sistema XP?
¿Cómo se verifica el sistema Win10? Windows10 viene con la función de índice de examen físico uso
Win8 configurar tutorial de red inalámbrica
Microsoft anuncia una competencia intensificada en Windows 8 Terminal System
600 millones de copias de la licencia de instalación de Windows 7 XP se retiraron gradualmente
Instalación de Windows 8 en una unidad USB Creación de un disco de arranque de Windows to Go
Aviso de actualización Win10 no aparece cómo hacerlo
Error del juego Win10 /pantalla de flores /no se puede maximizar cómo hacerlo