reactjs - 生产构建中的代码运行速度比 reactjs 中的开发服务器慢
问题描述
我一直在做一个 reactjs 项目,我在 reactjs 中构建光线追踪器。该应用程序在开发服务器中运行良好(在 0.3-0.7 秒内渲染一张图像)。但是一旦我创建了生产版本,时间就会急剧增加到 5 秒,有时会增加到 10-12 秒。我检查了 JavaScript 分析器,它说 babel 运行时大部分时间都在调用 vec3.js 中的方法。如何优化相同的速度。我附上了来自 chrome-dev-tool 的 JS 分析器的屏幕截图。
解决方案
当您提到开发服务器和生产构建时,我猜您正在使用 Create React App。
生产构建中生成的代码与开发中的不同,这是因为它们针对不同的浏览器。
更多信息在这里:https ://create-react-app.dev/docs/supported-browsers-features/
默认情况下,生成的项目在您的 package.json 文件中包含一个 browserslist 配置,以针对基于全局使用(> 0.2%)的广泛浏览器用于生产构建,以及用于开发的现代浏览器。这提供了良好的开发体验,尤其是在使用 async/await 等语言特性时,但仍提供与生产中的许多浏览器的高度兼容性。
在生产中与开发中具有相同性能的一种解决方案是更新您browserslist
在 package.json 中的条目。
如果您在与 in 中设置相同的值production
,development
您将获得相同的性能,但作为结果,您的代码可能无法在某些浏览器上运行...
推荐阅读
- c++ - 使用 C++20 在编译时检查容器中是否存在重复元素
- amazon-web-services - 在 Packer 中运行 ansible-local playbook 时,ansible_env_vars 会抛出未知的配置键
- python - 如何在只有流量作为输入的时间序列预测上使用机器学习来制作一个好的特征?
- javascript - iframe 内的画布不能从父级使用
- aws-lambda - 如何将单个技能链接到在 AWS IoT 中独立创建的多个对象?
- python - 为什么每次我在这个特定的数据集上运行 train-test split 时我的内核都会死掉?
- c++ - 将 Boost 用作 CMake 的 git 子模块
- javascript - 如何隐藏/显示 Flask 生成的单个项目?
- c++ - 使用 mojang leveldb 库的问题
- etherscan - Etherscan 如何为交易生成确认时间?