Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

856
Vistas
¿Por qué perf graba y anota no funciona?

Estoy perplejo, leí el tutorial de rendimiento y estoy tratando de hacer una prueba simple más allá de "perf stat" que funciona. Sin embargo, el registro de rendimiento no funciona o la anotación de rendimiento no muestra muestras registradas. rendimiento en ejecución

Por ejemplo (estoy ejecutando sudo porque sin él obtengo un montón de errores que publicaré al final):

sudo perf record -e cycles,instructions,cache-misses -a -c 1 ./FooExe

 [ perf record: Woken up 4 times to write data ] [ perf record: Captured and wrote 1.794 MB perf.data (~78393 samples) ]

.

 sudo perf report -D -i perf.data |grep RECORD_SAMPLE |wc -l Failed to open /tmp/perf-23796.map, continuing without symbols 20486

.

sudo perf annotate -d ./FooExe

the perf.data file has no samples! Press any key

Así que eso es todo lo que llego. Traté de reconstruir el rendimiento de mi sistema desde la fuente, pero eso tampoco pareció ayudar.

Estoy usando Ubuntu 14.04 kernel 3.19.0-49-generic. Esto está en la CPU Intel i7 I4510U. Me aseguré de compilar mi programa con símbolos, pero obtengo los mismos resultados independientemente de la aplicación que intente perfilar.

-- si ejecuto sin sudo :

 WARNING: Kernel address maps (/proc/{kallsyms,modules}) are restricted, check /proc/sys/kernel/kptr_restrict. Samples in kernel functions may not be resolved if a suitable vmlinux file is not found in the buildid cache or in the vmlinux path. Samples in kernel modules won't be resolved at all. If some relocation was applied (eg kexec) symbols may be misresolved even with a suitable vmlinux or kallsyms file. Cannot read kernel map Error: You may not have permission to collect system-wide stats. Consider tweaking /proc/sys/kernel/perf_event_paranoid: -1 - Not paranoid at all 0 - Disallow raw tracepoint access for unpriv 1 - Disallow cpu events for unpriv 2 - Disallow kernel profiling for unpriv
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Acabo de probar tu comando. El problema fue que usó -a para perfilar todos los procesos en todo el sistema, por lo que nunca se ejecutó ./FooExe . Puede confirmar esto con strace -f perf ... ./FooExe , y tenga en cuenta la falta de una llamada al sistema execve . Y también el hecho de que vuelve al instante, incluso si FooExe debería haber tardado varios segundos.

Aquí hay un ejemplo de grabación de muestras para un comando awk de ciclo ocupado:

 perf record -e cycles,instructions,cache-misses awk 'BEGIN{for(i=0;i<40000000;i++){}}'

Ahora funciona perf report . No necesita especificar el ejecutable para el comando de report , porque perf.data solo tiene datos para un ejecutable.


Esto funciona de la misma manera con el envoltorio ocperf.py , pero puede registrar eventos para eventos más específicos de uarch usando nombres simbólicos (en lugar de buscar códigos y argumentos numéricos en -e ):

 $ ocperf.py record -e cycles,cache-misses,uops_dispatched_port.port_0 awk 'BEGIN{for(i=0;i<40000000;i++){}}' perf record -e cycles,cache-misses,cpu/event=0xa1,umask=0x1,name=uops_dispatched_port_port_0,period=2000003/ awk 'BEGIN{for(i=0;i<40000000;i++){}}' (warning lines about kernel symbols) [ perf record: Woken up 2 times to write data ] [ perf record: Captured and wrote 0.352 MB perf.data (7819 samples) $ ocperf.py report
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda