Skip to content

Profile性能测试

<Profiler>让您以编程方式测量React树的渲染性能

1. 使用Profile

jsx
import './MapContainer.css'
import Head from './App40.jsx'
import { Profiler, useState } from 'react'
import { Button, Space } from 'antd'

function App() {
  // id-测试性能的组件可能有多个,id为Profiler上属性id值
  // phase-执行时机,有mount、update
  // actualDuration-渲染Profiler所有组件和子组件树的真实毫秒数
  // baseDuration-渲染Profiler的毫秒数,使用actualDuration-baseDuration可以得到我们的组件耗时
  // startTime-开始此次渲染的时间戳
  // commitTime-结束此次渲染的时间戳
  const headRender = (id, phase, actualDuration, baseDuration, startTime, commitTime) => {
    console.log(id, phase, actualDuration, baseDuration, startTime, commitTime)
  }
  const [count, setCount] = useState(0)
  function handleClick() {
    setCount(count + 1)
  }
  return (
    <>
      <Space>
        <div>Hello App {count}</div>
        <Button type='primary' onClick={handleClick}>点击</Button>
      </Space>
      <Profiler id='Head' onRender={headRender}>
        <Head/>
      </Profiler>
    </>
  )
}
export default App

运行效果:
Alt text

2. 使用ReactDevTools分析

ReactDevTools工具也提供了性能分析功能, 点击Profiler查看:
Alt text 点击左边的按钮可以记录页面加载情况,加载完毕会生成记录报告:
Alt text