如何测量 React 16 中浪费的渲染?

2024-01-22

我之前用过反应插件性能 https://reactjs.org/docs/perf.html#printwasted包来测量各种东西,例如浪费的渲染通过Perf.printWasted()。不幸的是,这个包在 React 16 中被淘汰,取而代之的是 Chrome 的 Performance 选项卡,而 Chrome 没有等效的工具。

我知道你为什么更新 https://github.com/maicki/why-did-you-update,但这并不完全相同。

React 16 有什么方法可以测量浪费的渲染吗?


Yes, 反应插件性能 https://reactjs.org/docs/perf.html#printwasted已退休,您将无法将它们用于 React 16 及进一步(进入 Fiber),如 Dan Abramov 在这个问题 https://github.com/facebook/react/issues/11326#issuecomment-338657337.

编辑 09-2018:最近发布了 React DevTools 的分析器,现在您可以使用该工具进行渲染优化和分析。有关此工具以及如何使用它的更多信息这篇官方反应博客文章 https://reactjs.org/blog/2018/09/10/introducing-the-react-profiler.html

编辑 09-2019:React Dev Tools 收到了重大更新,现在您可以测量渲染,并且有一个设置可以在 RDT 设置中获取“为什么更新”之类的功能。

另一种选择是使用你为什么更新 https://github.com/maicki/why-did-you-update,你提到了它,但与react-perf-addons“不完全相同”的区别在于,后一个工具使用内部协调分析,而不是依赖于更新状态或父项触发重新渲染的事实,比如你为什么更新。对我来说,当我们进行 React 不必要的渲染性能分析时,这些工具之间没有太大区别。

或者,您可以使用链接的性能表插件这个问题 https://github.com/facebook/react-devtools/issues/801#issuecomment-352993011。在我看来,性能分析原则概述于本·施瓦茨的文章 https://building.calibreapp.com/debugging-react-performance-with-react-16-and-chrome-devtools-c90698a522ad这对您和您的应用程序性能最有帮助,因为 React 在内部使用 Timing API,并且它将显示在 Chrome DevTools 的“性能”选项卡中的“用户计时”下。

希望这可以帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何测量 React 16 中浪费的渲染? 的相关文章

随机推荐

  • iOS 应用程序的多轨 mp3 播放

    我正在做一个应用程序 涉及以多轨格式 鼓 人声 吉他 钢琴等 播放歌曲 我不需要对每个轨道进行任何花哨的音频处理 我需要做的就是播放 暂停和静音 取消静音每个轨道 我一直在使用 AVAudioPlayer 的多个实例 但在执行设备测试时 我
  • 从构造函数抛出后调用析构函数

    我曾经认为在C 中 如果构造函数抛出异常 则不会调用这个 部分构造 类的析构函数 但在 C 11 中似乎不再如此 我用 g 编译了以下代码并打印 X destructor 到控制台 这是为什么 include
  • 如何使用 AWS IoT 向 Web 浏览器发送消息/从 Web 浏览器接收消息

    我们正在尝试使用 Amazon Web Services 物联网 AWS IoT 从 Web 浏览器发送消息 向 Web 浏览器发送消息 例如 鉴于 AWS IoT 支持 JavaScript 我们expect这是possible 我们已经
  • Github 未检测到新文件夹

    我正在使用连接到我的远程 bitbuckket git 的 Github Windows 客户端 我最近开始在 mobile 中构建应用程序的移动版本 我一直在 localhost WEBSITE NAME 中工作 但现在在 localho
  • 可以将部分域名作为我的路由规则中的参数吗?

    我想要一个路由规则接受我的部分域名作为参数 例如 name mydomain com photos id 这可能吗 我在使用 asp net mvc 时遇到了类似的问题 但使用整个域而不仅仅是子域 我们使用的是自定义路由约束来确定要转到哪个
  • 使用 json (body: raw) POST 数据时总是失败

    我在向服务器发送数据时遇到问题 我正在使用 React Native 和 axios 版本 0 16 2 let input longitude 6 3922782 latitude 106 8268856 content uget uge
  • Jquery Isotope 和 Twitter Bootstrap 网格

    我正在尝试将 jQuery Isotope 与我的 Twitter Bootstrap 网格一起实现 但我陷入了困境 我有一个常用的列引导标记 我有三行 row fluid 每行内有三列 span4 现在 当我在上述列上调用 Isotope
  • 使用弹出界面设计离子选择

    我正在创建一个带有弹出界面的离子选择元素 我想设计离子选择选项的样式 以便它们跨越屏幕的宽度 但我尝试过的任何方法都不起作用
  • 长时间运行的实体框架事务

    当用户打开某个实体的编辑表单时 我想锁定该实体并让她进行任何更改 在编辑过程中 她需要确保没有其他人对其进行任何编辑操作 如何锁定实体框架 C 4 数据库 MS SQL Server 2008 中的实体 提前非常感谢 坏主意 特别是如果您有
  • Actionmailer - Sparkpost 模板和多语言

    这是我第一次在 Rails 项目中设置邮件 我被告知要使用 SparkPost 并为多个操作的不同语言创建模板 为了简单起见 我们假设一封 user signed up user 邮件 目前我的设置有效 安装的宝石 sparkpost ma
  • 在服务器 JRE 与 JRE 中运行应用程序的主要区别是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我在oracle网站上看到有两种类型的jre下载 在服务器 JRE 与 JRE 中运行我的应用程序有什么区别 选择一种运行时环境而不是另一
  • 自定义 PowerShell 提示[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 带有“#”的意图过滤器路径前缀不起作用

    我正在尝试设置一个意图过滤器 以便在用户单击以下 URI 时启动我的活动 example com pathA pathB pathC someGUID 所以我将以下 XML 添加到清单文件中
  • 从 UICollectionView 索引路径获取模型

    我在用着RxSwift将模型数组绑定到集合视图 如何从给定的indexPath获取模型对象 我正在像这样进行绑定 vm bikeIssueCatagories drive self collectionView rx items cellI
  • Docker 创建了两个桥来破坏我的互联网访问

    我面临一个非常奇怪的问题 这是我的配置 docker 17 ce ubuntu 16 04 我在两个不同的地方与不同的互联网提供商工作 首先 一切工作正常 我可以开箱即用地运行 docker 并毫无问题地访问互联网 但第二 当 docker
  • 在没有输出文件的情况下调用 aws lambda

    我正在尝试使用 CLI 在 AWS 上调用 lambda aws lambda invoke function name GetErrorLambda payload body Id 321 123 output 我想知道是否有办法在 cl
  • 链接服务器和同义词之间的区别?

    t sql链接服务器和同义词有区别吗 如果是的话 它们是什么 在什么情况下我会选择其中之一 您使用链接服务器连接到不同服务器上的数据库 您使用同义词来指定要在 SQL 中访问的对象 例如表 它就像别名 欲了解更多信息 请参阅here htt
  • String.Format 在字符串内存储双引号[重复]

    这个问题在这里已经有答案了 我想表示以下字符串 aaaa 23 something inside double quotes 99 8 7 我想用这个来做到这一点String Format StringBuilder AppendLine
  • 在 Spring Security 中使用自定义异常

    我创建了一个自定义AuthenticationProvider执行自定义安全检查 我还创建了继承自的自定义异常AccountStatusException通知用户状态问题 例如用户在特定时间段内未验证其帐户 我的UserDetails也是一
  • 如何测量 React 16 中浪费的渲染?

    我之前用过反应插件性能 https reactjs org docs perf html printwasted包来测量各种东西 例如浪费的渲染通过Perf printWasted 不幸的是 这个包在 React 16 中被淘汰 取而代之的