首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏前端技术研究和应用

    前端打包、编译优化

    打包目前前端世界主流的前 3 名模块打包器仍然是 Webpack 、 Rollup 和 Esbuild 。 这也优化了 Turbopack 使得开发过程中增量更新非常快,确保 dev server 能够快速响应代码变更。Turbopack 还使用请求级编译方法来只编译请求的代码。 在前端开发过程中,我们经常遇到如下两类编译场景:将 TS 转换为 JS;将新版本 JS 语法转换为低版本浏览器支持的语法;当前前端界的编译工具,如下四个占据了大部分市场:名称描述Star底层语言Babel ;综上,现在的前端 TS 项目一般还是会使用 Babel 做编译,使用 TSC 做类型检查。 Tree Shaking是Webpack里非常重要的优化措施,它的优化效果在Webpack 5中又得到了进一步的提升。

    2.7K61编辑于 2023-03-06
  • 来自专栏WriteOnRead

    JVM笔记-前端编译优化

    Java 技术中的编译器可以分为如下三类: 前端编译器:把 *.java 文件转变为 *.class 文件的过程。比如 JDK 的 Javac。 其中后面两类都属于后端编译器。 本文主要分析前端编译器 Javac 的相关内容,后文再介绍后端编译器。 2. 2.2 注解处理器 JDK 5 提供了注解(Annotations)支持,JDK 6 提供了“插入式注解处理器”,可以在「编译期」对代码中的特定注解进行处理,从而影响前端编译器的工作过程。 常量折叠 该过程中,还会进行一个常量折叠(Constant Folding)的代码优化。 比如,我们在代码中定义如下: int a = 1 + 2; 在抽象语法树上仍能看到字面量 "1"、"2" 和操作符 "+",但经过常量折叠优化后,在语法树上将会被标注为 "3"。

    62110发布于 2020-04-22
  • 来自专栏IT大咖说

    原来前端工程的编译可以这样优化

    摘要 通过对压缩器、打包工具,以及模板引擎处理的讲解,来更深入的理解编译优化是如何作用的。同时详细介绍了Vue是如何处理编译优化的。以及未来前端领域在编译时上能做出那些更出色的优化。 嘉宾演讲视频及PPT回顾:http://suo.im/4TcEw 前端开发编译现况 在一段时间之前前端是没有编译这回事的,大部分人都是打开一个页面就开始写。 但是随着前端越来越复杂,开发前端时新增的部分越来越多,NodeJs、Webpack、BABEl等变得必不可少,同时Css也要进行预处理。到了现在编译已经成了前端开发中不可或缺的一环。 代码压缩其实就是一个构建时优化,我们通常使用的压缩器就相当于编译器,它将原生的代码压缩成更简洁、更轻量的形式。 由此我们可以从一直使用的压缩器中感受到编译优化是怎么样的一个作用过程。

    1.2K60发布于 2018-04-03
  • 来自专栏epoos.com

    前端编译

    前端编译的转变 前端开的主要编程语言是Javascript,Javascript是解释型语言,是不需要提前编译的,所谓开箱即用,因此前端行业(在很早之前)没有编译这回事。 因此,现在 Javascript 开发或者说前端开发逐渐变成了“非开箱即用”了。 编译是一个语言到另一个语言表达的转变,这里面不仅仅是功能上的应用,还可以给程序带来性能上的优化。 而前端的 ES6 转化到 ES5,Less/Sass 转换为 css,require依赖打包,代码压缩混淆都可以看做是语言的转换,更是提升了应用程序的性能。 因此,这些操作是 “编译”。 前端编译 前端编译主要功能 将框架(如 vue/react) 根据其特性语法进行模板解析、语法转换为常规 js。 前端编译原理 目前大多数编译过程都是先将源代码 Parser 成AST(抽象语法树),然后对 AST 进行分析,在这个分析过程中进行各种优化。 AST 是源代码语法结构的一种抽象表示。

    1.2K10编辑于 2022-06-06
  • 来自专栏Web大前端

    Svelte框架:编译优化的高性能前端框架

    Svelte是一款新兴的前端框架,以其独特的编译优化机制著称,能够在构建时将复杂的UI逻辑转换为高效的JavaScript代码,从而实现高性能的Web应用。 本文将深入解析Svelte的架构、核心概念以及代码优化策略。Svelte简介Svelte由Rich Harris于2016年创建,旨在解决传统前端框架在运行时性能上的瓶颈。 编译器:Svelte编译器将模板和组件转换为高效的JavaScript代码,用于浏览器执行。Svelte的编译优化Svelte的性能优势主要来自于它的编译优化。以下是几个关键的优化策略:1. Svelte与现代Web框架的对比Svelte vs React性能:Svelte在编译优化,生成的代码更高效,减少了运行时的计算和DOM操作。 体积:Svelte的体积比Vue小得多,因为它的大部分优化发生在编译时。性能:Svelte的性能优于Vue,尤其是在大型应用中,因为Vue需要维护虚拟DOM和依赖收集。

    1.3K10编辑于 2024-06-12
  • 来自专栏CSDN旧文

    编译优化

    1 #pragma comment(linker, "/stack:200000000") 2 #pragma GCC optimize("Ofast,no-stack-protector") 3 #pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native") 4 #pragma GCC optimize("unroll-loops")

    70320发布于 2020-10-29
  • 来自专栏前端框架源码剖析

    Vue3源码11: 编译优化之Block Tree 与 PatchFlags

    编译结果 请大家先看一段模版代码: <! 我们先看看这个编译结果render函数做了什么事情,或者说这个函数应该做什么事情。 UNKEYED_FRAGMENT = 1 << 8, NEED_PATCH = 1 << 9, DYNAMIC_SLOTS = 1 << 10, DEV_ROOT_FRAGMENT = 1 << 11 areChildrenSVG, slotScopeIds, false ) } 当时我叫大家先忽略patchBlockChildren函数,只告诉大家该函数和优化相关 --代码片段11-->

    {{name}}
    {{age}}
    </

    1.9K20编辑于 2022-09-27
  • 来自专栏Java技术圈子

    编译优化

    前端编译优化 10.2.1 Javac的源码与调试 从Javac代码的总体结构来看,编译过程大致可以分为1个准备过程和3个处理过程,它们分别如下 所示。 1)准备过程:初始化插入式注解处理器。 但在JDK 6中又提出并通过了JSR-269提案[1],该提案设 计了一组被称为“插入式注解处理器”的标准API,可以提前至编译期对代码中的特定注解进行处理, 从而影响到前端编译器的工作过程。 如本章概述中所说的,在前端编译器中,“优化”手段主要用于提升程序的编码效率,之所以把Javac这类将Java代码转变为字节码的编译器称作“前端编译器”,是因为它只完成了从程序到抽象语法树或中间字节码的生成 在第11章中,我们将会一探后端编译器的运作和优化过程。 第11章 后端编译优化 11.1 概述 如果我们把字节码看作是程序语言的一种中间表示形式(Intermediate Representation,IR)的话, 那编译器无论在何时、在何种状态下把Class

    65120编辑于 2023-02-28
  • 来自专栏流媒体

    Android 11(Q)源码编译

    2021-06-27 16-45-41 的屏幕截图.png 3 编译源码 3.1 环境配置 参考官方文档https://source.android.google.cn/setup/build/ bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig 3.2 驱动下载 参考https://source.android.google.cn 2021-06-27 17-00-56 的屏幕截图.png 3.3 编译 初始化环境 source build/envsetup.sh // 编译前删除build文件夹A make clobber 选择编译目标 8. aosp_car_arm64-userdebug 9. aosp_car_x86-userdebug 10. aosp_car_x86_64-userdebug 11

    2K10发布于 2021-06-29
  • 来自专栏Rust语言学习交流

    【Rust日报】2023-11-09 - Nightly Channel 中更快的并行编译前端

    Introducing Spin 2.0 :https://www.fermyon.com/blog/introducing-spin-v2 文章 - Nightly Channel 中更快的并行编译前端 来自并行 Rustc 工作组的博客介绍 Rust 编译器的前端如何利用并行执行显著减少编译时间。 文章还解释了编译器前后端的工作方式,以及现有的几种并行性支持。 现在这个新特性可以在 nightly channel 中启用,并且预计在 2024 年发布至 stable channel。 threads=8"] Faster compilation with the parallel front-end in nightly : https://blog.rust-lang.org/2023/11 新一期的 Rust 周报速递发布,快来看看有哪些内容你曾经关注过 :) This Week in Rust 520: https://this-week-in-rust.org/blog/2023/11

    38810编辑于 2023-11-11
  • 来自专栏前端小歌谣

    前端编译流程

    前言 我是歌谣 最好的种树是十年前 其次是现在 今天继续给大家带来的是预编译基础的讲解 环境配置 npm init -y yarn add vite -D 修改page.json配置端口 { undefined-->2 // //} //GO{ // a:undefined-->1 // test:function test(){} // c:3 //} 运行结果 案例11

    34641编辑于 2023-11-06
  • 来自专栏cpp加油站

    c++11&14-编译

    1. c++11&14怎么编译 学习c++11的时候,我的redhat虚拟机上的g++才是4.1.2版本,而g++4.7版本才开始支持c++11的,所以要使用c++11,首先需要将我们的g++编译器升级到 注意:大意义上来讲,GCC是一个编译器集合,拿到源代码后编译出来各种编译器,如果我们选择编译c,c++的编译器,就会生成gcc和g++。 这里的gcc是专门正对于c代码的编译器,g++则是专门针对于c++代码的编译器,gcc和g++最显著的区别是g++会调用-lstdc++库,gcc不会。 1.2 c++11编译 一般的,我们要编译c++11,都要使用g++ -std=c++11,但据我测试,7.1.0的版本已经默认支持c++11和c++14了,所以就不用再写明-std=c++11的选项了 ,可以直接使用g++编译c++11或者c++14的代码啦,当然如果想知道某个特性到底是属于c++11还是c++14,就可以使用-std=c++11和-std=c++14来辨别。

    65020发布于 2021-04-16
  • 来自专栏玩转大前端

    前端优化

    一、页面/文件级优化 1、减少HTTP请求数 解决方法: 1)设置缓存 2)css、js、img等静态资源合并压缩(vue的项目有压缩css和js) 3)懒加载图片(不是真正意义的减少请求数 with加长了作用域链,eval和Function都是需要二次编译代码,损耗的性能更大) 3、减少Reflow和Repaint(二者都比较耗费性能) 解决方法: 1)使用改变类名的方式改变样式 11、精简页面的样式文件,去掉不用的样式,不同页面的样式分开文件存放(样式文件偏大,影响加载速度,浏览器会进行多余的样式匹配,影响渲染时间,也便于管理,降低维护成本)12、利用css继承减少代码:有一部分 3、webpack优化 4、将请求接口代码和加载动画及错误弹出提示封装成公共函数 5、统一前端常用组件规范。 前端规范:不同样式的组件图片使用一个大文件夹统一存放,里面分各种子类,每次更换只需更改文件夹名称即可实现更改一整套组件的样式的效果;使用vue.js框架的,这些组件都统一写成可复用组件(无需每次重复编写代码

    79220编辑于 2022-08-15
  • 来自专栏只喝牛奶的杀手

    前端优化

    的访问次数 Choose <link> over@import @import使用< link >而非@import Avoid Filters 避免过滤器的使用 Optimize Images 优化图片 Optimize CSS Sprites 优化CSS Sprites

    65120发布于 2019-08-26
  • 来自专栏Fantasy的技术小站

    前端优化

    前端优化是一个至关重要的过程,它不仅影响到网站的用户体验,还可能影响到网站的搜索引擎排名。 下面是一些常见的前端优化策略,以帮助提高页面的加载速度: 优化图片 压缩图片:使用工具或插件压缩图片,减小文件大小。 使用正确的格式:例如,使用 WebP 格式代替 JPEG 或 PNG。 优化 CSS:将关键路径的 CSS 内联在 head 中。 浏览器缓存 通过设置 HTTP 头信息,使浏览器缓存静态资源,减少重复加载。 优化字体 选择高效的字体格式:例如,WOFF2。 优化渲染路径 避免阻塞渲染的资源:例如,将脚本和样式表移到 HTML 文档的底部。 利用请求优先级:确保关键资源优先加载。 在进行优化时,建议使用性能分析工具来监控和测试优化效果,确保每一步的改进都是有效的。

    43820编辑于 2023-10-18
  • 来自专栏逮虾户

    AndResGuard编译速度优化

    只有了解了完整的ARG的流程之后,我们才可以对其进行二次开发和二次优化。首先当然先是设立目标了,我们要做什么,然后可以怎么做? TODO 我们打算做些什么? 如何更改编译任务的执行顺序 在对Aab的代码分析过程中,我们其实发现了一些很神奇很微妙的点,对于我们后续的优化产生了重大的启发。 第一个任务完成 从上述流程走通之后,我们只要把ARG的代码进行二次开发,根据对应task任务进行优化,这样我们的第一个任务也就完成了。 Main.gradleRun(inputParam) } return null } 这个就是ARG调用资源文件混淆的代码了,我们基本不需要对其进行大改造就能把这个编译优化完成了 我们是不是可以考虑直接把任务执行在线程内,这样下一个task就可以继续执行了,只要在编译完成之前把任务执行好是不是就可以把这部分资源混淆的时间也给优化掉呢,说干就干,直接上代码。

    1K30编辑于 2023-10-16
  • 来自专栏linux驱动个人学习

    Makefile优化编译速度

    并行编译:使用 make -j 命令来进行并行编译,可以加快编译速度。-j 后面可以跟一个数字,表示并行编译的线程数。 懒惰计算:使用 .PHONY 规则来避免无谓的重新编译。 例如:\ .SUFFIXES: 指定编译器选项:使用 -O 开启编译优化选项,可以提高程序执行速度。 例如: CFLAGS=-O all: hello.c gcc $(CFLAGS) -o hello hello.c 分离头文件:将头文件和源文件分离,可以避免重复编译,减少编译时间。 myprog hello.o main.o hello.o: hello.c hello.h gcc -c hello.c main.o: main.c hello.h gcc -c main.c 使用预编译头文件 :将常用的头文件编译成单独的预编译头文件,可以加快编译速度。

    82630编辑于 2023-07-09
  • 来自专栏鹅厂少年的奇妙之旅

    GCC编译优化选项

    GCC编译优化选项 参考GCC文档 http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html. 分为如下: O0: 默认选项,目的: 减少编译时间;生成可调试代码(可打断) O/O1: 做一些不显著增加编译时间的优化 O2: 显著提升编译时间,提升代码性能,做不包含`space-speed tradeoff `的所有优化 O3: 进一步优化,显著增加可执行文件大小。 Os: 优化性能同时不增加可执行文件大小。包含O2选项中不增加代码大小的优化项 Og: 优化性能同时不损害可调试性。包含O1选项中不损害可调试性的优化项 Ofast: 忽视严格的标准编译性。 未调用的函数不会被编译 template独立编译每个类型 template增加编译时间,但往往性能会有更好的提升。

    8.6K51发布于 2019-01-03
  • 来自专栏Elton的技术分享博客

    MySQL 编译参数优化

    适当的调整MySQL的编译参数,可以极大的提升MySQL的性能,官方文档说可以提升10-30%的性能。 mysql/tmp/mysql.sock 使用unix套接字链接提高7.5%性能,所以在windows下mysql性能肯定不如unix下面 –enable-assembler 允许使用汇编模式(优化性能

    2.2K30发布于 2021-01-22
  • 来自专栏运维研习社

    Nginx编译安装优化

    nginx安装有两种访问,一种是利用包管理器直接安装,也是新手最简单的安装方式,另一种是源码包编译安装。 源码包编译安装的有点就是灵活,扩展方便,且据说性能要比直接包管理器安装要好,对于很多人说的包管理器安装无法安装最新版、无法升级到最新版等问题,纯属扯淡,不存在,只要你能找到一个好的源。 但是今天主要讲编译安装nginx的一些方法。网上有很多编译安装教程,也有一键安装包,这里不再长篇大论的描述nginx整个编译安装的步骤,只说几个编译安装的小方法。 减小可执行文件 默认的nginx编译选项里使用debug模式的,会插入很多不必要的内容,编译以后文件有好几兆,所以这里去掉nginx的debug模式编译,完成后可执行文件只有几百K。 如同注释掉图上的一行,重新编译。 ? 如图,编译后只有880K。

    95410发布于 2021-02-23
领券