HTML Preparation code:
x
 
1
<!doctype html>
2
<html>
3
4
<head>
5
    <title>This is the title of the webpage!</title>
6
</head>
7
8
<body>
9
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react/18.1.0/umd/react.production.min.js"></script>
10
    <script src="https://cdnjs.cloudflare.com/ajax/libs/react-dom/18.1.0/umd/react-dom.production.min.js"></script>
11
    <div id="root"></div>
12
</body>
13
14
</html>
Script Preparation code:
 
function ComponentWithOuterFunctionUseCallback() {
  function functionToTest(evt) {
    evt.preventDefault();
  }
  const testFunction = React.useCallback(functionToTest, []);
  return React.createElement('button', {onClick: testFunction}, 'Test click');
}
function ComponentWithUseCallback() {
  const testFunction = React.useCallback(evt => evt.preventDefault(), []);
  return React.createElement('button', {onClick: testFunction}, 'Test click');
}
function ComponentWithInlineFunction() {
  function testFunction(evt) {
    evt.preventDefault();
  }
  return React.createElement('button', {onClick: testFunction}, 'Test click');
}
function ComponentWithArrowFunction() {
  const testFunction = (evt) => {
    evt.preventDefault();
  }
  return React.createElement('button', {onClick: testFunction}, 'Test click');
}
Tests:
  • ComponentWithOuterFunctionUseCallback

     
    ReactDOM.render(React.createElement(ComponentWithOuterFunctionUseCallback), document.getElementById('root'))
  • ComponentWithUseCallback

     
    ReactDOM.render(React.createElement(ComponentWithUseCallback), document.getElementById('root'))
  • ComponentWithInlineFunction

     
    ReactDOM.render(React.createElement(ComponentWithInlineFunction), document.getElementById('root'))
  • ComponentWithArrowFunction

     
    ReactDOM.render(React.createElement(ComponentWithArrowFunction), document.getElementById('root'))
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    ComponentWithOuterFunctionUseCallback
    ComponentWithUseCallback
    ComponentWithInlineFunction
    ComponentWithArrowFunction

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 4 months ago)
Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:132.0) Gecko/20100101 Firefox/132.0
Firefox 132 on Ubuntu
View result in a separate tab
Test name Executions per second
ComponentWithOuterFunctionUseCallback 366567.7 Ops/sec
ComponentWithUseCallback 356271.1 Ops/sec
ComponentWithInlineFunction 285868.2 Ops/sec
ComponentWithArrowFunction 299347.2 Ops/sec