Saltar al contenido principal

contentTracing

Recopile datos de rastreo del módulo de contenido de Chromium para encontrar cuellos de botella de rendimiento y operaciones lentas.

Proceso: principal

Este módulo no incluye una interfaz web. Traces are recorded in the Perfetto protobuf format; to view them, open them in the Perfetto UI.

[!NOTE] No debes usar este módulo hasta que se emita el evento ready de la aplicación. El módulo.

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()​

History

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. Consulte además el listado de categorías de traza empotradas.

NOTA: Electron agrega una categoría de rastreo no predeterminada invocación "electron". Esta categoría se puede utilizar para capturar eventos de seguimiento específicos de Electron.

contentTracing.startRecording(options)​

History
Version(s)Changes
None

El parámetro options ahora acepta TraceConfig además deTraceCategoriesAndOptions.

None

Esta función ahora devuelve una función de devolución de invocaciónPromise<void>.

None

Added the nativeHeapProfiling option to enable native heap profiling.

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. If options.nativeHeapProfiling is set while a recording is already running, the promise is rejected instead, since the already-running recording's options can't be changed to turn on heap profiling.

contentTracing.stopRecording([resultFilePath])​

History
  • 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.

Trace data is written in the Perfetto protobuf format.

Heap profiling samples record instruction addresses and module build IDs rather than function names. To symbolize them, use the symbols published for the matching Electron release with Chromium's symbolize_trace tool.

contentTracing.getTraceBufferUsage()​

History

Devuelve Promise<Object> - Resuelve con un objeto conteniendo el value y percentage de máximo uso de trace buffer

  • value número
  • percentage número

Obtener el uso máximo a través de procesos de trace buffer como un porcentaje del estado completo.