首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Tree-Shaking性能优化实践 - 原理篇

无用代码消除在广泛存在于传统的编程语言编译器中,编译器可以判断出某些代码根本不影响输出,然后消除这些代码,这个称之为DCE(dead code elimination)。...Tree-shaking 是 DCE 的一种新的实现,Javascript同传统的编程语言不同的是,javascript绝大多数情况需要通过网络进行加载,然后执行,加载的文件大小越小,整体执行时间更短,...Tree-shaking 和传统DCE的方法又不太一样,传统DCE 消灭不可能执行的代码,而Tree-shaking 更关注宇消除没有用到的代码。...图4 传统编译型的语言中,都是由编译器将Dead Code从AST(抽象语法树)中删除,那javascript中是由谁做DCE呢?...的引用,但其实代码中并没有用到menu的任何方法和变量,所以我们的期望是,最终代码中menu.js里的内容被消除 main.js menu.js rollup打包结果 包中竟然包含了menu.js的全部代码

10510
您找到你想要的搜索结果了吗?
是的
没有找到

Rspack 作者揭秘,你的 Tree Shaking 真的起作用了吗?

这些优化分别作用于不同层面:usedExports 针对导出变量,sideEffects 针对整个模块,而 DCE 则针对 JavaScript 语句。...在 bootstrap.js 中,console.log 语句不会执行,因此在最终输出中被移除,这是 DCE 优化的效果。 // index.js import { a } from '....DCE 优化 在 Webpack 中,死代码消除 (DCE) 的过程相对直接,主要涉及两个重要场景: 假分支 if(false){ false_branch; } else { true_branch...DCE(死代码消除)优化失败 除了 sideEffect 和 usedExports 优化的问题外,大多数其它 Tree shaking 失败可以归因于 DCE 的失败。...DCE 失败的常见原因包括使用了 eval 和 new Function 这样的动态代码结构,这些结构在代码压缩过程中可能导致优化失败。

17810

RS232的零调制解调器(Null Modem)连接方式,你了解吗?

正常连接 在RS-232规范中,DTE(数据终端设备)和DCE(数据通信设备)是指串行连接两端的设备类型。一般来说,DTE和DCE分别指计算机设备和调制解调器。...因为RS-232规范主要涉及将DTE直接连接到DCE,反之亦然,所以引脚的定义使布线变得简单。...DTE到DCE的连接方式一般采用直通布线方式: 零调制解调器(Null Modem) 实际上,如果按照上述标准来说,RS232的网络里面正常应该有DCE设备,但我们在工控应用上很少看到存在Modem的场景...这种方法被称为零调制解调器布线,因为它取代了传统RS-232应用程序在两个DTE之间需要的两个调制解调器。...RS232DTEvsDCE.html https://tech.ifeng.com/c/7g9w8VNfzpo https://www.geeksforgeeks.org/difference-between-dte-and-dce

18410

传统机器学习技术概述

笔者邀请您,先思考: 1 您使用哪些传统机器学习算法? 虽然新闻天天提到机器学习、深度学习和人工智能,但这些领域已经存在了几十年。...然而,如果你越过自动驾驶汽车和数字助理,你会发现,今天应用的大多数都是传统的。 ? 在本文,传统意味着我们多年来一直在做的事情和是更先进的机器学习的基础。...下面,我们将介绍四种被认为是传统机器学习的机器学习技术。 聚类 聚类是一种根据行为和人口统计等相似性在数据中寻找自然分组的技术。这听起来像是使用分析工具或SQL进行的聪明分组,但它远远不止于此。...这四种技术只是传统机器学习的基础。正如您所看到的,机器学习不仅可以用于识别图片上的猫和狗,还在许多情况可以提供直接的商业价值。

1.2K10

扫码

添加站长 进交流群

领取专属 10元无门槛券

手把手带您无忧上云

扫码加入开发者社群

相关资讯

热门标签

活动推荐

    运营活动

    活动名称
    广告关闭
    领券