contentTracing
Recopile datos de rastreo del módulo de contenido de Chromium para encontrar cuellos de botella de rendimiento y operaciones lentas.
Process: Main
Este módulo no incluye una interfaz web. Para ver las huellas gravadas, use trace viewer, disponible en chrome://tracing
en Chrome.
Note: You should not use this module until the ready
event of the app module is emitted.
const { app, contentTracing } = require('electron')
app.whenReady().then(() => {
(async () => {
await contentTracing.startRecording({
included_categories: ['*']
})
console.log('Tracing started')
await new Promise(resolve => setTimeout(resolve, 5000))
const path = await contentTracing.stopRecording()
console.log('Tracing data recorded to ' + path)
})()
})
Métodos
El módulo contentTracing
tiene los siguientes métodos:
contentTracing.getCategories()
Devuelve Promise<string[]>
- resuelve con un array de grupos de categorías una vez que todos los procesos hijos han confirmado la solicitud getCategories
Obtener un conjunto de grupos de categorías. La categoría de grupos puede cambiar a medida que se alcanza nuevas rutas de código. See also the list of built-in tracing categories.
NOTA: Electron añade una categoría de seguimiento no predeterminada llamada
"electron"
. Esta categoría se puede utilizar para capturar eventos de seguimiento específicos de Electron.
contentTracing.startRecording(options)
Devuelve Promise<void>
- resuelto una vez que todos los procesos hijos han confirmado la solicitud startRecording
.
Iniciar la grabación en todos los procesos.
La grabación se inicia de manera inmediata de forma local y asincrónica en los procesos secundarios tan pronto como reciben la solicitud de habilitación de grabación.
Si una grabación ya está corriendo, la promesa será inmediatamente resulta, ya que sólo un operación de seguimiento puede estar en progrese a la vez.
contentTracing.stopRecording([resultFilePath])
resultFilePath
string (opcional)
Devuelve Promise<string>
- resuleve con una ruta al archivo que contiene los datos rastreados una vez que los procesos hijos han reconocido la solicitud stopRecording
Dejar de grabar en todos los procesos.
Los procesos secundarios normalmente almacenan en caché los datos de rastreo y solo raramente limpian y envían datos de rastreo al proceso principal. Esto ayuda a minimizar la sobrecarga de tiempo de ejecución del rastreo ya que el envío de datos de rastreo a través de IPC puede ser una operación costosa. Por lo tanto, para finalizar un seguimiento, Chromium solicita de forma asíncrona a todos los procesos hijos que eliminen cualquier seguimiento de datos pendiente.
Los datos de rastreo se escribirán dentro de resultFilePath
. Si resultFilePath
está vacío o no es proporcionado, los datos de rastreo serán escrito en un archivo temporal, y la ruta será retornada en el promise.
contentTracing.getTraceBufferUsage()
Devuelve Promise<Object>
- Resuelve con un objeto conteniendo el value
y percentage
de máximo uso de trace buffer
value
númeropercentage
número
Obtener el uso máximo a través de procesos de trace buffer como un porcentaje del estado completo.