两台相同型号的笔记本电脑之间的 Angular 编译器速度很慢
Posted
技术标签:
【中文标题】两台相同型号的笔记本电脑之间的 Angular 编译器速度很慢【英文标题】:Angular compiler is slow between two identical model laptops 【发布时间】:2020-07-31 13:17:10 【问题描述】:我和同事正试图找出编译时间不同的原因。我们拥有完全相同的戴尔笔记本电脑 7030 型号、相同的 SSD、相同的硬盘、相同的内存、规格。我们的任务管理器流程看起来很相似。
公司订购相同型号的电脑。
我们从 Angular Git Repository 下载,配置和包 json,具有相同的节点大小内存。
问题是,我们的笔记本电脑之间的初始构建时间为 2 分钟,而 8 分钟。
当我们在同一个文件中编辑一个单词时,他的重新编译只需要 5 秒,而我的需要 20 秒。 只有在同一台计算机上运行的程序才是 Angular 命令 ng serve。
有没有人有解决这个问题的想法,并且编译时间很慢?
有什么我可以在我的工作站中改变到编译速度相似的地方吗?
尝试了所有同事的解决方案,仍然很慢
我们有相同的 Node.js 版本 在 Company Project Git Repo 中从 Angular 8 更新到 10 试过npm cache clear
尝试卸载并重新安装 Angular 和 Nodejs
Windows 的 ScanDisk 不会在 SSD 驱动器上显示错误
将 package-lock.json 与同事进行比较,在源代码控制差异中比较,它们完全相同
在 Angular Git 文件夹上打开了 Windows Defender 排除功能
资源:
Angular compilation slow
How to speed up the Angular build process
更新:
刚刚注意到我的笔记本电脑在styles.scss 文件上真的停在了48%
【问题讨论】:
如果您不使用互联网,代理设置无关紧要。尝试重置本地 npm 缓存。尝试考虑是否在某些角度包/依赖版本中可能存在冲突。可能需要更多信息才能在此处指出确切的问题。确保您的两台机器最近都重新启动。 节点进程和 npm 缓存目录的防御者或任何其他 AV 怎么样? 是的,从 Defender 中排除了 Angular 文件夹,我们关闭了 Fireye,没有 AV 您是否尝试过任何其他 CPU 基准测试? hi @phhbr 我该如何测试 CPU 基准? 【参考方案1】:正如你所描述的,所有的东西都是一样的,无论是节点版本还是角度版本、硬件模型、软件和配置。您还确保构建管道是相同的。
唯一想到的是依赖项的一些差异,是的node_modules包中的版本不匹配。考虑到当您没有指定像 ^x.x.x
(又名 semantic versioning)这样的确切版本时,包括所有大于同一主要范围内特定版本的所有内容,以便由 npm
或 yarn
安装依赖项。有一个名为npm semver 的工具可以显示这一点。这样,您也必须检查已安装的软件包版本,方法是打开每个软件包并查看 package.json 文件。特别是那些你认为会影响性能的,比如 sass loader。每个版本的性能可能不同。
【讨论】:
这是否可以解释为什么我的同事在使用完全相同的 Git 存储库和配置参数的情况下构建时间要快得多? 另外,我已经尝试卸载并重新安装 Angular 和 Nodejs 每次您尝试安装依赖项 (npm i
) 时都可能存在差异。您确定所有已安装的依赖版本都相同吗?
我相信你应该在两台计算机之间的依赖版本不匹配中找到它。
我有这么多包,不知道哪个和saas loader有关,我也删除了我的repo,重新下载了,同样的问题【参考方案2】:
如果您正在运行完全相同的代码库。 我会非常自信地说它是 node.js 或不同的 npm 版本是问题
尝试运行
node --version
npm --version
yarn --version
查看您安装了哪些版本。
对于 Angular 9,我建议运行节点 12,这是当前的 LTS(长期支持)版本。
直到节点 14,它现在也出来了,但它的 LTS 版本要到 2020 年 10 月。
我发现yarn
比 npm 快几个数量级,所以如果你想提高速度,如果你还没有尝试过,请尝试运行它。
还可以尝试清除 npm 缓存,如 cmets 所述。
npm cache clear
【讨论】:
以上是关于两台相同型号的笔记本电脑之间的 Angular 编译器速度很慢的主要内容,如果未能解决你的问题,请参考以下文章