inglés

Profiling. In software engineering, profiling ("program profiling", "software profiling") is a form of dynamic program analysis that measures, for example, the space (memory) or time complexity of a program, the usage of particular instructions, or the frequency and duration of function calls. Most commonly, profiling information serves to aid program optimization. Profiling is achieved by instrumenting either the program source code or its binary executable form using a tool called a profiler (or code profiler). Profilers may use a number of different techniques, such as event-based, statistical, instrumented, and simulation methods. Gathering program events Profilers use a wide variety of techniques to collect data, including hardware interrupts, code instrumentation, instruction set simulation, operating system hooks, and performance counters. Profilers are used in the performance engineering process. Profiler types based on output. Flat profiler. Flat profilers compute the average call times, from the calls, and do not break down the call times based on the callee or the context. Call-graph profiler. Call graph profilers show the call times, and frequencies of the functions, and also the call-chains involved based on the callee. In some tools full context is not preserved. Input-sensitive profiler. Input-sensitive profilers add a further dimension to flat or call-graph profilers by relating performance measures to features of the input workloads, such as input size or input values. They generate charts that characterize how an application's performance scales as a function of its input. Data granularity in profiler types. Profilers, which are also programs themselves, analyze target programs by collecting information on their execution. Based on their data granularity, on how profilers collect information, they are classified into event based or statistical profilers. Profilers interrupt program execution to collect information, which may result in a limited resolution in the time measurements, which should be taken with a grain of salt. Basic block profilers report a number of machine clock cycles devoted to executing each line of code, or a timing based on adding these together; the timings reported per basic block may not reflect a difference between cache hits and misses.[14][15] Event-based profilers. The programming languages listed here have event-based profilers: Java: the JVMTI (JVM Tools Interface) API, formerly JVMPI (JVM Profiling Interface), provides hooks to profilers, for trapping events like calls, class-load, unload, thread enter leave. .NET: Can attach a profiling agent as a COM server to the CLR using Profiling API. Like Java, the runtime then provides various callbacks into the agent, for trapping events like method JIT / enter / leave, object creation, etc. Particularly powerful in that the profiling agent can rewrite the target application's bytecode in arbitrary ways. Python: Python profiling includes the profile module, hotshot (which is call-graph based), and using the 'sys.setprofile' function to trap events like c_{call,return,exception}, python_{call,return,exception}. Ruby: Ruby also uses a similar interface to Python for profiling. Flat-profiler in profile.rb, module, and ruby-prof a C-extension are present. Statistical profilers. Some profilers operate by sampling. A sampling profiler probes the target program's call stack at regular intervals using operating system interrupts. Sampling profiles are typically less numerically accurate and specific, but allow the target program to run at near full speed. The resulting data are not exact, but a statistical approximation. "The actual amount of error is usually more than one sampling period. In fact, if a value is n times the sampling period, the expected error in it is the square-root of n sampling periods." [16] In practice, sampling profilers can often provide a more accurate picture of the target program's execution than other approaches, as they are not as intrusive to the target program, and thus don't have as many side effects (such as on memory caches or instruction decoding pipelines). Also since they don't affect the execution speed as much, they can detect issues that would otherwise be hidden. They are also relatively immune to over-evaluating the cost of small, frequently called routines or 'tight' loops. They can show the relative amount of time spent in user mode versus interruptible kernel mode such as system call processing. Still, kernel code to handle the interrupts entails a minor loss of CPU cycles, diverted cache usage, and is unable to distinguish the various tasks occurring in uninterruptible kernel code (microsecond-range activity). Dedicated hardware can go beyond this: ARM Cortex-M3 and some recent MIPS processors JTAG interface have a PCSAMPLE register, which samples the program counter in a truly undetectable manner, allowing non-intrusive collection of a flat profile.

español

Perfilado En ingeniería de software, la creación de perfiles ("perfil de programa", "perfil de software") es una forma de análisis dinámico de programas que mide, por ejemplo, el espacio (memoria) o la complejidad de tiempo de un programa, el uso de instrucciones particulares o la frecuencia y duración de las llamadas a funciones. Más comúnmente, la información de perfiles sirve para ayudar a la optimización del programa. El perfilado se logra mediante la instrumentación del código fuente del programa o su forma ejecutable binaria utilizando una herramienta llamada perfilador (o perfilador de código). Los perfiladores pueden usar varias técnicas diferentes, como métodos basados ​​en eventos, estadísticos, instrumentados y de simulación. Recopilación de eventos del programa. Los perfiladores utilizan una amplia variedad de técnicas para recopilar datos, incluidas las interrupciones de hardware, la instrumentación de códigos, la simulación de conjuntos de instrucciones, los enlaces del sistema operativo y los contadores de rendimiento. Los perfiladores se utilizan en el proceso de ingeniería de rendimiento. Tipos de perfiles basados ​​en la salida. Perfilador plano. Los perfiladores planos calculan los tiempos de llamada promedio, a partir de las llamadas, y no desglosan los tiempos de llamada según la persona que llama o el contexto. Calibrador de call-graph. Los perfiladores del gráfico de llamadas muestran los tiempos de llamada y las frecuencias de las funciones, y también las cadenas de llamadas involucradas en función de la persona que llama. En algunas herramientas no se conserva el contexto completo. Perfilador de entrada sensible.Los perfiladores sensibles a la entrada agregan una dimensión adicional a los perfiladores planos o de gráficos de llamadas al relacionar las medidas de rendimiento con las características de las cargas de trabajo de entrada, como el tamaño de entrada o los valores de entrada. Generan gráficos que caracterizan cómo el rendimiento de una aplicación se escala en función de su entrada. Granularidad de datos en tipos de perfilador. Los perfiladores, que también son programas en sí mismos, analizan los programas de destino al recopilar información sobre su ejecución. En función de la granularidad de sus datos, de cómo los perfiladores recopilan información, se clasifican en perfiladores basados ​​en eventos o estadísticos. Los perfiladores interrumpen la ejecución del programa para recopilar información, lo que puede resultar en una resolución limitada en las mediciones de tiempo, que deben tomarse con un grano de sal. Los perfiladores de bloques básicos informan una serie de ciclos de reloj de máquina dedicados a ejecutar cada línea de código, o un tiempo basado en sumarlos; los tiempos informados por bloque básico pueden no reflejar una diferencia entre las coincidencias y los fallos de caché. [14] [15] Perfiladores basados ​​en eventos. Los lenguajes de programación listados aquí tienen perfiladores basados ​​en eventos: Java: la API JVMTI (Interfaz de herramientas JVM), anteriormente JVMPI (Interfaz de creación de perfiles JVM), proporciona enlaces a los perfiladores, para interceptar eventos como llamadas, carga de clases, descarga, entrada de subprocesos, dejar. .NET: puede adjuntar un agente de creación de perfiles como servidor COM al CLR mediante la API de creación de perfiles.Al igual que Java, el tiempo de ejecución luego proporciona varias devoluciones de llamada en el agente, para interceptar eventos como el método JIT / enter / leave, creación de objetos, etc. Particularmente poderoso porque el agente de creación de perfiles puede volver a escribir el código de bytes de la aplicación de destino de manera arbitraria. Python: Python profiling incluye el módulo de perfil, hotshot (que se basa en call-graph), y el uso de la función 'sys.setprofile' para atrapar eventos como c_ {call, return, exception}, python_ {call, return, exception}. Ruby: Ruby también usa una interfaz similar a Python para crear perfiles. Perfil plano en profile.rb, módulo y ruby-prof una extensión C están presentes. Perfiladores estadísticos. Algunos perfiladores operan por muestreo. Un perfilador de muestreo sondea la pila de llamadas del programa de destino a intervalos regulares utilizando interrupciones del sistema operativo. Los perfiles de muestreo suelen ser menos numéricamente precisos y específicos, pero permiten que el programa de destino se ejecute a casi la máxima velocidad. Los datos resultantes no son exactos, sino una aproximación estadística. "La cantidad real de error suele ser más de un período de muestreo.De hecho, si un valor es n veces el período de muestreo, el error esperado en él es la raíz cuadrada de n períodos de muestreo ". [16] En la práctica, los analizadores de muestreo a menudo pueden proporcionar una imagen más precisa de la ejecución del programa de destino que otros enfoques, ya que no son tan intrusivos para el programa de destino y, por lo tanto, no tienen tantos efectos secundarios (como en cachés de memoria o instrucciones). tuberías de decodificación). Además, como no afectan tanto a la velocidad de ejecución, pueden detectar problemas que de otra forma estarían ocultos. También son relativamente inmunes a la sobre evaluación del costo de las pequeñas, a menudo llamadas rutinas o bucles "ajustados". Pueden mostrar la cantidad relativa de tiempo empleado en el modo de usuario frente al modo de núcleo interrumpible, como el procesamiento de llamadas al sistema. Aún así, el código del kernel para manejar las interrupciones conlleva una pérdida menor de los ciclos de la CPU, el uso de la memoria caché desviada y no puede distinguir las diversas tareas que ocurren en el código del kernel ininterrumpible (actividad de rango de microsegundos). El hardware dedicado puede ir más allá: ARM Cortex-M3 y algunos procesadores MIPS recientes. La interfaz JTAG tiene un registro PCSAMPLE, que muestrea el contador del programa de una manera realmente indetectable, lo que permite la recolección no intrusiva de un perfil plano.

Traductor.com.ar | ¿Cómo utilizo la traducción de texto inglés-español?

Asegúrese de cumplir con las reglas de redacción y el idioma de los textos que traducirá. Una de las cosas importantes que los usuarios deben tener en cuenta cuando usan el sistema de diccionario Traductor.com.ar es que las palabras y textos utilizados al traducir se guardan en la base de datos y se comparten con otros usuarios en el contenido del sitio web. Por esta razón, le pedimos que preste atención a este tema en el proceso de traducción. Si no desea que sus traducciones se publiquen en el contenido del sitio web, póngase en contacto con →"Contacto" por correo electrónico. Tan pronto como los textos relevantes serán eliminados del contenido del sitio web.


Política de Privacidad

Los proveedores, incluido Google, utilizan cookies para mostrar anuncios relevantes ateniéndose las visitas anteriores de un usuario a su sitio web o a otros sitios web. El uso de cookies de publicidad permite a Google y a sus socios mostrar anuncios basados en las visitas realizadas por los usuarios a sus sitios web o a otros sitios web de Internet. Los usuarios pueden inhabilitar la publicidad personalizada. Para ello, deberán acceder a Preferencias de anuncios. (También puede explicarles que, si no desean que otros proveedores utilicen las cookies para la publicidad personalizada, deberán acceder a www.aboutads.info.)

Traductor.com.ar
Cambiar pais

La forma más fácil y práctica de traducir texto en línea es con traductor inglés español. Copyright © 2018-2022 | Traductor.com.ar