首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏Tecvan

    Webpack 性能系列三:提升编译性能

    前面两篇文章《Webpack 性能系列二:多进程打包》、《Webpack 性能系列一: 使用 Cache 提升构建性能》已经详细探讨使用缓存与多进程能力,提升 Webpack 编译性能的基本方法与实现原理 ,这两种方法都能通过简单的配置极大提升大型项目的编译效率。 除此之外,还可以通过一些普适的最佳实践,减少编译范围、编译步骤提升 Webpack 性能,包括: 使用最新版本 Webpack、Node 配置 resolve 控制资源搜索范围 针对 npm 包设置 module.noParse 不过,类型检查涉及 AST 解析、遍历以及其它非常消耗 CPU 的操作,会给工程化流程引入性能负担,必要时开发者可选择关闭编译主进程中的类型检查功能,同步用 fork-ts-checker-webpack-plugin :多进程打包》、《Webpack 性能系列一: 使用 Cache 提升构建性能》,关于 Webpack 编译性能提升的方式方法已经总结的比较完备了,有其它观点的同学欢迎留言或私信联系。

    1.7K20编辑于 2021-12-09
  • 来自专栏网络虚拟化

    百度性能压测工具DPerf系列-2 编译intel DPDK

    在上一个章节中,我们讲述了百度的DPDK性能压测工具dperf的基本概念。 DPDK性能压测系列-1:dperf 工具简介‍ 文章介绍了dperf是一款基于intel DPDK开发的一款高性能的开源网络压力测试仪,目前已经被收录至DPDK官方生态项目。 本文为dperf用户介绍如何编译DPDK-19.11,该方法也同样适合通过make方式编译其他版本的DPDK软件包。 common_base配置文件描述 然后:安装编译intel DPDK需要的相关库 编译dpdk需要安装相关的依赖库,以centos 为例,需要安装numa和内核相关的工具库。 DPDK 1、设置编译的全局变量 进入DPDK软件包目录,设置Intel DPDK环境变量 export RTE_SDK=`pwd` 2、设置交叉编译工具链 export RTE_TARGET=x86

    1.3K30编辑于 2023-03-23
  • 来自专栏bit哲学院

    libxml2剖析(2):编译

    安装好之后,应用程序在进行编译和链接时需要知道libxml2的头文件和库文件位置。在上面运行. xml2-config --cflags: 打印预处理和编译标志,通常是"-I/usr/local/include/libxml2"。       2、Windows下的编译     (1)编译libxml2      若要在Windows下自行编译libxml2,libxml2-2.9.0\win32\Readme.txt中说明怎样通过命令行来编译 它们包含了调试信息,并采用了一些保护机制以帮助发现错误,加强了对错误的检测,因此在运行性能方面比不上Release版本。       编译好之后libxml2.dll依赖于libiconv-2.dll,因此两者需要一起发布。

    2.8K20发布于 2021-02-20
  • 来自专栏容器计算

    【rancher】rancher编译-2

    rancher的编译-2 接上一篇,rancher的编译-1,因为整个 rancher 是有 Makefile 的,所以正常来说一个 make 命令也可以让你进行编译。 HELM_URL_V2} > /usr/bin/rancher-helm && curl -sLf ${! HELM_URL_V2} > /usr/bin/rancher-helm && curl -sLf ${! 这个看起来是编译脚本的问题,全局搜一下这个错误信息,可以发现是在 . /scripts/validate 这个脚本内,查了一下,暂时注释掉应该问题不大,因为这里的意思是防止你的 git 仓库有改动没提交就开始编译了,挺麻烦的,但是可以暂时不管。

    1K20编辑于 2021-12-02
  • 来自专栏云深之无迹

    编译目录详解.2

    编译目录详解.1看官们可以先看第一篇,这篇是补充 ? json配置在这里,我们打开看看 ? 这个是json文件,其实是无格式的,我给格式化了一下 ? 美化前 ? tello esp32的cpp编译模式 ? 固件位置 C:\Program Files (x86)\Mind+\Arduino\fw\telloesp32 ? 注意复制我的地址才可以找到 ? 编译出来好大的一个文件 ? 项目列表这个有点迷,再研究一下 我按照这个路径打开了一个demo /*! tt_rgb.SetRGB(0,0,255); tt_matrix.SetAllPWM ((uint8_t*)bitmap[0]); } else if ((2= , 1000))) { tt_rgb.SetRGB(255,0,0); tt_matrix.SetAllPWM ((uint8_t*)bitmap[2]); }

    63760发布于 2020-12-17
  • 来自专栏神光的编程秘籍

    TypeScript 编译性能优化:Project Reference

    ts 编译速度与项目规模有关,如果项目比较大,代码很多,那就需要编译很长一段时间。 有没有什么办法可以提升 tsc 编译性能呢? 还真有,TypeScript 3.0 的时候实现了 Project Reference 的特性,就是用于优化编译和类型检查的性能的。 那 Project Reference 是干什么的呢? ,monorepo 里就可以用 Project Reference 来提升 tsc 的编译性能。 然后执行 tsc --build 或者 tsc -b 来编译。 这时候就实现了编译和类型检查的性能优化。 这是 TypeScript 提供的编译性能优化机制,当项目比较大,tsc 执行的速度比较慢的时候,不妨尝试一下。

    1.1K30编辑于 2022-11-11
  • 来自专栏小菜与老鸟

    Xcode编译疾如风系列-2.并行编译

    Xcode编译疾如风-2.并行编译 ? Xcode 编译是一个需要 CPU 运算以及大量 IO 操作的过程。我们将编译任务分配给多个 CPU 来提高单位时间内的编译速度。 对于 IO 密集型任务,线程池设置为 2N,IO 密集型任务 CPU 使用率并不高,因此可以让 CPU 在等待 IO 的时候去处理别的任务,这样能够充分利用 CPU 时间。 阿姆达尔定律 思考下,并行编译是银弹吗?非也。 阿姆达尔定律是一个估算通过多核并行能够获得多少性能提升的经验法则。内容是: 通过并行计算所获得的系统性能提升效果,会随着无法并行的部分而产生饱和。 ? 可并行化部分占比 P 为 90% 时,无论如何提高并行程度(提高N),整体上最多获得的性能提升无法超过基准的 10 倍。(1-P)部分表示无法并行的部分,这部分便是瓶颈。 更多阅读 WWDC2018 Session415[1] https://gist.github.com/nlutsenko/ee245fbd239087d22137[2] 参考资料 [1] WWDC2018

    3.6K41发布于 2021-04-23
  • 来自专栏文渊之博

    T-SQL性能调整(一)--编译和重新编译

    2. 执行查询计划(生成执行计划--产生查询结果),在下一篇中介绍。 编译和重新编译      SQL Server 有一个高效的算法,可查找用于任何特定 SQL 语句的现有执行计划。 由此我们要做的就是如何高效的应用执行计划的缓存,又在合适重新编译执行计划,来提高查询效率,减少性能的损耗。      2.架构的变更比如表或试图中添加索引,增加或者删除列等。        不仅会影响性能,当服务器间移动代码时会引起太多问题,建议使用schema.object(dbo.ExcutionTest)这样的统一规范。         2.代数化,主要完成检查语义是否正确。 同时还会完成三个任务: 名称解析:查询每个对象的名称是否存在正确,作用域是否可见; 类型派生:在分析树种各节点的字段类型等,如表链接后的字段类型。

    1.2K90发布于 2018-01-30
  • 来自专栏fred 随笔

    Tengine编译GeoIP2

    下载geoip2数据 git clone https://gitee.com/ZTfred/nginx-geoip2.git cd nginx-geoip2 tar -zxvf GeoLite2-City /GeoLite2-City_20200519/GeoLite2-City.mmdb /usr/share/GeoIP/ tar -zxvf GeoLite2-Country_20200519.tar.gz 编译安装 cp -a /usr/local/tengine/ /usr/local/tengine_bak mv ngx_http_geoip2_module/ /usr/local/tengine/ modules/ cd ~/tengine-2.3.3/ # 重新编译nginx,添加geoip2的库,注意将之前的目录全都备份一遍 . '$remote_addr–$remote_user $geoip2_data_country_name-$geoip2_data_province_name-$geoip2_data_city_code

    1K40编辑于 2022-08-30
  • 来自专栏RFFAN实验室

    编译 .wxss 出错2 not found

    C:\Users\Administrator\AppData\Local\微信web开发者工具\User Data\WeappVendor windows的话在这个路径。 /Users/xxxx/Library/Application Support/微信web开发者工具/WeappVendor mac的话在这个路径。

    1.1K10发布于 2020-05-11
  • 来自专栏dmhsq_csdn_blog

    Taro---day2---编译运行

    docs/next/folder 安装完成后 根据不同命令运行到不同平台 如 微信小程序运行 npm run dev:weapp 同样需要在配置文件配置 微信小程序appId 根据提示 将编译生成文件目录

    50620编辑于 2022-06-22
  • 来自专栏HAUE_LYS'Blog

    编译原理:2. 词法分析

    词法分析并不很复杂,但是我们却使用能力强大的形式化方法和工具来实现它,因为类似的形式化方法对语法分析研究很有帮助,并且类似的工具还可以应用于编译器以外的其他领域。 任何单字母都能通至状态 2,因此单字母字符串是可被接收的字符串。从状态 2 出发,任何字母和数字都将重新回到状态 2,因此一个后跟任意个数字母和数字的字母也将被接收。 从状态 1 可以到达状态 2,从状态 4 可到达状态 5,从 状态 9 则无处可去,而从状态 14 则可以到达状态 15,由此得到状态集合 {2, 5, 15}。 因此这个 NFA 一定属于状态集合 {2, 5, 6, 8, 15}。 对于下一个输入字符 n,从状态 6 可到达状态 7,但状态 2、5、8 和 15 都无相应的转换。 因为原则上 DFA有 2^n 个状态, 但实际上我们一般找到的只有约 n 个状态是从初态可到达的。这一点对避免 DFA 解释器的转换表出现指数级的膨胀很重要,因为这个转换表是编译器的一部分。

    1.2K21编辑于 2023-09-04
  • 来自专栏酷酷的哀殿

    Swift 入门:编译 Swift 源码(2

    我们曾经在上一篇文章中 https://cloud.tencent.com/developer/article/1744552 提到 Swift 及相关组件的编译会耗费大量的磁盘空间。 在笔者的电脑上,两个仓库的体积合计 9G 左右: [image.png] 压缩后 压缩后体积在 4G 左右: [image.png] Tip2编译中间文件 通常情况下,编译中间文件 会占用20G以上的空间 以 scheme-clang 为例,如果读者按照上一篇文章提供的脚本进行编译,就会发现下面的目录包含21个中间文件。 当我们开始使用 Xcode 进行编译或者调试时,这些文件都可以被删除。 批量清理方案 考虑到 Swift LLVM lldb 3个工程加起来有几百个临时文件夹,一个个手动删除的效率较低。 -name lldb.build | xargs rm -rf Tip3、构建依赖 构建依赖是指:编译A项目时,必须先编译B、C项目才能进行。 此时,A 项目的构建依赖就是 B 和 C。

    2.4K10发布于 2020-11-15
  • 来自专栏采云轩

    Vue 2 模版编译流程详解

    Vue 2 模版编译流程详解 http://zoo.zhengcaiyun.cn/blog/article/vue2 图片 vue 中有这样一张响应式系统的流程图,vue 会将模板语法编译成 render 为了更好理解 vue 的模板编译这里我整理了一份模板编译的整体流程,如下所示,下面将用源码解读的方式来找到模板编译中的几个核心步骤,进行详细说明: 图片 1、起步 这里我使用 webpack 来打包 =js&"); var _node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_2_ code + `\nexport { render, staticRenderFns }` } 2、模板编译流程 vue/compiler-sfc 是模板编译的核心库,在 vue2.7 版本中使用, 参考文献 vue 2 官方文档 ( https://v2.cn.vuejs.org/ )

    83830编辑于 2023-09-01
  • 来自专栏玩转Lighthouse.

    Linux 编译安装aria2

    轻量云最近上线了锐驰型套餐,最高峰值200M,点我选购编译安装aria2下载源码前往Github查看aria2最新版本,截至本文发布,最新版本为1.37.0若Github无法连接 可尝试镜像站(例如kkgithub.com )wget https://github.com/aria2/aria2/releases/download/release-1.37.0/aria2-1.37.0.tar.gz解压tar xzvf aria2 -*删除压缩包rm -rf aria2-*.tar.gz进入目录cd aria2-*编译安装编译前提需要有gcc环境 可输入gcc --version 测试是否含有gcc环境(轻量所有系统镜像均携带gcc /configure make make install编译完成后运行cp src/aria2c /usr/bin创建配置文件在任意你喜欢的目录创建会话文件和配置文件还有下载目录(注意在下方的配置文件中修改为你实际的路径 conf/aria2.session # 在Aria2退出时保存`错误/未完成`的下载任务到会话文件 save-session=/root/aria2/conf/aria2.session # 定时保存会话

    83110编辑于 2025-01-26
  • 来自专栏自动化测试实战

    Jmeter性能测试 -2 性能测试流程

    性能测试必知名词 QPS:每秒查询率 RPS:每秒用户请求率 HPS:每秒用户点击率 后面的我再介绍 性能测试流程 需求分析——熟悉业务 明确性能测试指标 了解整体软件功能、架构 制定测试计划,做好工作量评估

    3.8K30编辑于 2022-04-12
  • 来自专栏后端精进之路

    JVM性能优化系列-(5) 早期编译优化

    早期编译优化 早期编译优化主要指编译期进行的优化。 ):将字节码变成机器码,例如HotSpot VM的C1、C2编译器 AOT编译器(Ahead Of Time Compiler):直接把*.java文件编译成本地机器码,例如GNU Compiler for 符号表中所登记的信息在编译的不同阶段都要用到。在语义分析中,符号表所登记的内容将用于语义检查和产生中间代码。在目标代码生成阶段,当对符号名进行地址分配时,符号表是地址分配的依据 2. because return type of method is Integer 自动装箱的弊端, 自动装箱有一个问题,那就是在一个循环中进行自动装箱操作的时候,如下面的例子就会创建多余的对象,影响程序的性能 变长参数 Arrays.asList(1, 2, 3, 4, 5); 条件编译 条件编译也是java语言的一种语法糖,根据布尔常量值的真假,编译器将会把分支中不成立的代码块消除掉。

    50620编辑于 2023-10-19
  • 来自专栏后端精进之路

    JVM性能优化系列-(6) 晚期编译优化

    HotSpot虚拟机中内置了两个即时编译器,分别称为Client Compiler和Server Compiler,或者简称为C1编译器和C2编译器,虚拟机默认采用解释器与其中一个编译器直接配合的方式工作 由于即时编译编译本地代码需要占用程序运行时间,要编译出优化程度更高的代码,所花费的时间可能更长;而且想要编译出优化程度更高的代码,解释器可能还要替编译器收集性能监控信息,这对解释执行的速度也有影响。 HotSpot虚拟机采用分层编译(Tiered Compilation)的策略,其中包括: 第0层:程序解释执行,解释器不开启性能监控功能(Profiling),可触发第1层编译 第1层:也称为C1编译 ,将字节码编译为本地代码,进行简单、可靠的优化,如有必要将加入性能监控的逻辑 第2层:也称为C2编译,也是将字节码编译为本地代码,但是会启用一些编译耗时较长的优化,甚至会根据性能监控信息进行一些不可靠的激进优化 Scan Register Allocation)在LIR上分离寄存器,并在LIR上做窥孔(Peephole)优化,然后产生机器代码 Server Compiler是专门面向服务端的典型应用并为服务端的性能配置特别调整过的编译

    49410编辑于 2023-10-19
  • 来自专栏开源技术小栈

    性能 PHP 编译型模板引擎

    概述 ThinkTemplate 是一个基于 XML 的高性能编译型模板引擎,无需任何外部依赖,专为高效和灵活性设计。 凭借其动态编译、缓存机制以及 XML 架构,ThinkTemplate 在简洁性和强大功能之间实现了完美平衡。 核心特性 • 自定义标签定界符:支持为普通标签和标签库标签自定义开始和结束定界符。 • 高效编译与缓存:模板编译为 PHP 文件并缓存,多次运行效率极高,模板更新时自动刷新缓存。 • 系统变量直接输出:无需赋值即可直接使用系统变量。 • 多维数组快速输出:轻松处理复杂数据结构。 每个模板文件在执行时都会生成一个编译后的缓存文件(本质是一个可运行的 PHP 文件)。由于其编译型特性,模板缓存无法关闭,即使禁用缓存,每次渲染时也会重新生成缓存文件,确保性能一致。

    25210编辑于 2025-09-11
  • 来自专栏范传康的专栏

    Llama2.c 学习笔记2编译加速

    llama2.c使用纯C编写,不过不同的编译优化能够提供不同的加速性能。 在同一台机器(centos gcc 9.3)不同编译配置,运行相同的模型(stories110M),进行推理速度(tok/s)比较。 相比原始的c编译(O3优化),叠满Fast,OMP,GNUC11后有了近10倍的加速。centos 安装 gcc 9.xubuntu20,22好像默认安装的gcc都是高版本的没有问题。 /run out/stories110M.bin图片2. Fast: 13.30 tok/sgcc -Ofast -o run run.c -lm.

    3.9K61编辑于 2023-08-04
领券