import React from 'react'; import Highlight from 'react-highlight'; import ToggleContent from 'Shared/ToggleContent'; import DocLink from 'Shared/DocLink/DocLink'; import { connect } from 'react-redux'; const ProfilerDoc = (props) => { const { projectKey } = props; return (

Profiler

The profiler plugin allows you to measure your JS functions' performance and capture both arguments and result for each function call.
Installation
{`npm i @openreplay/tracker-profiler --save`}
Usage

Initialize the tracker and load the plugin into it. Then decorate any function inside your code with the generated function.

Usage
{`import OpenReplay from '@openreplay/tracker'; import trackerProfiler from '@openreplay/tracker-profiler'; //... const tracker = new OpenReplay({ projectKey: '${projectKey}' }); // .start() returns a promise tracker.start().then(sessionData => ... ).catch(e => ... ) //... export const profiler = tracker.use(trackerProfiler()); //... const fn = profiler('call_name')(() => { //... }, thisArg); // thisArg is optional`} } second={ {`import OpenReplay from '@openreplay/tracker/cjs'; import trackerProfiler from '@openreplay/tracker-profiler/cjs'; //... const tracker = new OpenReplay({ projectKey: '${projectKey}' }); //... function SomeFunctionalComponent() { useEffect(() => { // or componentDidMount in case of Class approach // .start() returns a promise tracker.start().then(sessionData => ... ).catch(e => ... ) }, []) //... export const profiler = tracker.use(trackerProfiler()); //... const fn = profiler('call_name')(() => { //... }, thisArg); // thisArg is optional }`} } />
); }; ProfilerDoc.displayName = 'ProfilerDoc'; export default connect((state) => { const siteId = state.getIn(['integrations', 'siteId']); const sites = state.getIn(['site', 'list']); return { projectKey: sites.find((site) => site.get('id') === siteId).get('projectKey'), }; })(ProfilerDoc);