使用minify作前端性能优化

嵌入式开发(5)位带(位段)操作 位带区是存储器映射包括两个位段区域。这些区域将存储器别名区域中的每个字映射 到存储器位段区域中的相应位。在别名区域写入字时,相当于对位段区域的目标位执行读-修改-写操作。其中一个位于SRAM区域的第一个1MB,另一个则位于外设区域的第一个1MB,这两个区域可以同普通存储器一样访问,而且还可以通过名为位段别名的一块独立的存储器区域进行访问。别名区是按照一定的映射关系,将位带区的每一个bit 映射到位带别名区的每一个字 (不是字节,stm32中字的宽度为4字节)。 阅读详情


关于前端性能优化的文章很多很多,各大网站如google,yahoo都有对前端性能优化的文章和准则。例如yahoo针对前端设计和性能优化提出了几点准则,详细可以阅读它的文章:http://developer.yahoo.com/performance/index.html#rules。


      文章中有这样的几点:

1.尽量减少加载页面时的http请求,因为任何一个http请求都要连接访问-处理-响应这样的过程,我们应该较少产生的http请求。

  2.要说js,css,图片等静态资源文件的大小。比如使用一些工具(如YUI comressor等)对js和css文件进行压缩,图片的话可以把多个图标和素材合并成一个图片,然后用css来控制显示的定位,避免加载多张图片。

  3.未每个http请求都设置cache-control和expire.

  4.可以的话设置Etag。

  5.启用gzip压缩

  6.每个静态文件最好不要超过25k,这个主要是针对iphone平台,根据yahoo文章描述iphone下大于25k的文件是不予缓存的。


这里要介绍的minify就是能够解决这几个问题的一个php5程序。是由google开发维护的,并且已经集成到例如worldpress,zend framework,yii等开源项目中。

google code项目地址:http://code.google.com/p/minify/ 。

       下面是展示的在worldpress中使用minify前后的效果:

       

      可以看到,http请求由原来的7个减少到2个,发送和接收到的字节也明显较少了很多。


     minify的使用也灰常简单。下载minify的压缩包http://minify.googlecode.com/files/minify-2.1.5.zip  ,然后将解压后的min目录文件夹放到web根目录或者静态资源根目录下。然后浏览器访问http://<你的域名或静态资源独立域名>/min/builder/,就会打开一个用来生成minify url的生成页面。



在输入文本框补全输入你的js或者css的链接,点击Add file可以将所有的js和css文件都添加上。然后点击update,在下方会生成minify url。我们前端html中就可以使用这个url来达到减少http请求的目的,且自动帮助你压缩了静态文件的大小。第一次压缩后会缓存到文件里,如果喜欢更快点,可以配置使得minify缓存的压缩文件放到如memcache等缓存里。

有时候可能会觉得合并后的minify url太长了,可以使用minfy的groupconfig配置来缩短url长度,进入到min目录下的groupsConfig.php文件:

<?php
/**
 * Groups configuration for default Minify implementation
 * @package Minify
 */

/** 
 * You may wish to use the Minify URI Builder app to suggest
 * changes. http://yourdomain/min/builder/
 *
 * See http://code.google.com/p/minify/wiki/CustomSource for other ideas
 **/

return array(
    // 'js' => array('//js/file1.js', '//js/file2.js'),
    // 'css' => array('//css/file1.css', '//css/file2.css'),
)


然后使用的minify url就可以通过http://<你的域名或静态资源独立域名>/min/?b=js  加载js组的文件,http://<你的域名或静态资源独立域名>/min/?b=css加载css组的文件。


另外也建议将js,css,图片以及flash等静态资源文件都放在一个独立域名,一是减少不必要的http传输字节数(请求静态资源的http连接一般不需要带cookie,session之类的http头信息),另一个在切换成cdn或者迁移更新变化的时候都很方面简单。



Cortex-M3 特色功能——位带操作(Bit-Band) 位带操作是Cortex-M3内核提供的一种高效原子位操作方法,通过将位带区的每一位映射到别名区的32位字地址,实现对单个位的原子读写。相比传统的“读-改-写”方式,位带操作避免了多任务环境下的数据竞争问题。其原理是将1MB位带区映射到32MB别名区,通过硬件自动转换地址完成位操作。实际应用中,可通过宏定义简化地址计算,如GPIO控制或共享变量标志位操作,显著提升代码效率和安全性。这种机制由总线硬件保证原子性,在嵌入式开发中具有重要价值。 阅读详情

相关推荐

JS和CSS优化工具Minify.zip

Minify 是一个 PHP5 的应用,帮助你让网站更加符合 Yahoo 的:Rules for High Performance Web Sites. Minify可以按需对JavaScript以及CSS文件进行合并、压缩以及缓存,以加快页面的载入速度。而安装minify则极其简单,只需在网站根目录下上传程序目录即可。 标签:Minify

开源项目推荐:Minify

Minify 是一个用 Go 语言编写的开源项目,旨在提供高效的网页格式文件(如 HTML、CSS、JS、JSON、SVG 和 XML)的压缩工具。该项目通过去除文件中的冗余字符(如空白符)来减小文件大小,从而加快文件的传输速度和解析速度。 ## 项目核心功能 Minify 的核心功能包括: 1. **多格式支持**:支持 HTML5、CSS3、JavaScript、JSON、SVG 和 X

gitblog_01099的博客 479

vue3的面试题

vue3的面试题

jiang7701037的博客 6263

minify使用手冊

版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/addcn-logs/82221929.html 一、配置及參數(Config.php) 1、調試模式 $min_allowDebugFlag = false; 設置為true時候,可在地址加debug=1刪除沒有壓縮格式化的源碼。 2、緩存文件目錄 $min_cachePath = ...

huyuminNo1的专栏 880

工业数据采集实战:用open62541库读写PLC的OPC UA节点(避坑指南)

本文详细介绍了如何使用open62541库实现工业PLC的OPC UA节点数据采集,涵盖环境搭建、节点读写优化及生产环境故障排查。通过订阅模式和多节点读写技术,显著提升数据采集效率与稳定性,适用于智能制造和工业物联网场景。

weixin_30598225的博客 399

python控制caxa模块_CAXA二次开发实用手册.doc

您所在位置:网站首页 > 海量文档&nbsp>&nbsp汽车/机械/制造&nbsp>&nbsp机械软件CAXA二次开发实用手册.doc119页本文档一共被下载:次,您可全文免费在线阅读后下载本文档。 下载提示1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。2.该文档所得收...

weixin_39990819的博客 1760

使用Minify(配置)

看了这篇文章: 在服务端合并和压缩JavaScript和CSS文件 http://dancewithnet.com/2010/06/08/minify-js-and-css-files-in-server/ 自己也想小试一下。。所以有了下面的事情 按照上面的文章: 1.安装apache(115网盘的备份:http://115.com/file/bhrpqfu3) 2.安装php(htt...

weixin_30361753的博客 430

SAP生产版本导入避坑大全:从‘黄灯’到‘绿灯’,详解CM_FV_MKAL_CONSISTENCY_CHECK检查函数

本文深入解析SAP生产版本导入过程中的常见问题,特别是通过`CM_FV_MKAL_CONSISTENCY_CHECK`检查函数从‘黄灯’异常到‘绿灯’正常的修复方法。涵盖静态与动态校验机制、典型异常场景诊断及批量导入最佳实践,帮助SAP运维人员高效解决生产版本管理难题。

weixin_30568591的博客 387

Minify把CSS和JS压缩和削减

Minify把CSS和JS压缩和削减(Minify:去掉空格回车符等),以及把多个CSS,JS文件整合到一个文件里。不要以为你的大带宽没有必要进行这类优化。使用它的理由更重要的是文件合并,而不是压缩,而是文件整合,这样可以减少浏览器端不断发出新的连接请求,就像FTP服务器一样,多个小文件和一个大文件耗时是不一样的。 Minify是用PHP写的,项目地址 http://code.goo

萧刚 633

【学习体会】Lighttools8.4.0:简单光学系统实例

添加球型光源(SphereSource)和表面接收器: 对光线模拟的参数进行设置: 光线追踪-模拟输入 要追踪的光线总数,决定模拟的准确度,总数越多,准确度越高,当然耗时更多 预览光线数量是模拟之后可以看到的示意光线(黑线),一般是100~1000,随意设置 点击,开始模拟: (模拟结果) 如果光线太多,则会出现,可以看到剩余时间 照度分析: 分析-照度显示-光栅图表 ...

LeonJin的博客 1万+

YOLOv8融合改进 更换检测头为Detect_DyHead同时添加C2f_DBB模块

yolov8独家训练测试融合网络结构,提供详细步骤详细代码,手把手教你在yolov8官方包中把检测头更换为Detect_DyHead检测头,并且将原始的C2f模块更换成C2f_DBB模块,提高检测精度,亲测在多个数据集上有涨点!!!!!

分享一些自己改进代码的实例 4747

推荐使用:Minify——高效文件压缩工具

推荐使用:Minify——高效文件压缩工具 在当今的Web开发中,优化资源加载速度是提升用户体验的关键。为了帮助开发者轻松实现这一目标,我们向您推荐一款强大的开源工具——Minify。这是一款一体化的文件最小化解决方案,专门针对JavaScript、CSS、HTML以及图像文件进行高效的压缩处理,从而显著减小文件大小,加速网站加载。 项目介绍 Minify是一个基于Node.js的多用途文件压缩库...

gitblog_00740的博客 683

RH850从0搭建Autosar开发环境【1】- 如何创建Davinci Configurator配置工程

当我们在公司接触Autosar开发环境时,基本都是完整的Davinci Configurator的配置工程,我们只能修修补补。 从本章开始将手把手搭建Rh850基于Vector公司Davinci Configurator的autosar配置工程。主要涉及到OS,COM,DCMM,NVM,BSWM,ECUM等基本模块,包括Vlink,memap使用,XCP标定的实现等。基本是实现一个基础版的项目开发。包括后期的GreenHills编译问题处理,生成最终的Hex文件。

weixin_42412049的博客 1万+

STM32位带区和位带别名区的浅谈

1.首先谈下为什么要使用位带? 在学习51单片机时就已经使用过位操作,比如使用sbit对单片机IO口的定义,但是STM32中并没有这类关键字,而是通过访问位带别名区来实现,即通过将每个比特位膨胀成一个32位字,当访问这些字的时候就达到了访问比特的目的。比方说BSRR寄存器有32个位,那么可以映射到32个地址上,当我们去访问这32个地址就达到访问32个比特的目的,也就是说我们可以通过位带轻松的去控制...

水枂的博客 1万+

深入RKNN Toolkit2:自定义算子与内存优化秘籍

本文系统探讨了RKNNToolkit2在模型转换中的关键技术与优化策略。首先介绍了该工具包的基础功能及模型转换流程,重点阐述了自定义算子的实现方法,包括算子分析、代码编写和注册集成等步骤,并以ReduceLogSumExp算子为例进行案例分析。在内存优化方面,详细论述了模型量化、内存复用和参数配置等策略,通过具体案例展示优化效果。最后结合智能安防项目实践,分享了YOLOv5模型部署经验及问题解决方案。文章指出,随着AI技术发展,RKNNToolkit2将在算子支持、量化技术和硬件适配等方面持续优化,为边缘计

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 1387

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

STM32中Cortex-M3的位带区和位带别名区

本文详细阐述了STM32 Cortex-M3内核中的位带(Bit-Banding)机制。该机制通过硬件映射,将特定外设和SRAM区域(位带区)的每一个比特,关联到别名区的一个独立32位字地址。核心计算公式为:别名地址 = 别名基地址 + (字节偏移 × 32) + (位号 × 4)。这使程序员能通过直接访问计算出的别名地址,实现对单个比特快速、原子性的置位或清零操作,无需传统的“读-改-写”流程,极大地提升了位操作的效率和安全性。

weixin_71547062的博客 1280

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

Cortex - M3 位带别名首地址的计算方法

--------------------------------------------- -- 时间:2019-01-17 -- 创建人:Ruo_Xiao -- 邮箱:xclsoftware@163.com --------------------------------------------- 一、源代码 #define BITBAND(addr, bitnum) ((addr &a...

布袋和尚 4955

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

STM32位带操作(bit_band)位带区字节的位所对应的位带别名区地址计算公式的解释

STM32可以通过位带操作实现像51单片机一样单独访问某些寄存器的某一位.其原理就是把在位带区中的每一位膨胀到32位映射到位带别名区.STM32分别有2个1MB大小的位带区,分别为外设和SRAM,所以映射到位带别名区的大小就有32M. 知道了所要操作位带区的地址和其中某一位,可以通过下面的公式计算对于位带别名区的地址,然后通过操作这个地址的最低位(LSB)就实现了对相应位带区某一位的操作了.

itccccc的专栏 1万+

Cortex-M3存储器系统

Cortex-M3权威指南存储器系统笔记

weixin_54930908的博客 1703

Cortex-M3/M4位带操作实战:从寄存器映射到GPIO高效控制

本文深入解析了Cortex-M3/M4内核的位带操作机制,从寄存器映射原理到GPIO高效控制实战。通过对比库函数与位带操作的性能差异,详细阐述了如何利用位带别名区实现单指令原子操作,从而在嵌入式开发中显著提升I/O控制效率和中断安全性,特别适用于时序要求苛刻的场景。

yhn456789的博客 972

STM32地址映射、位带操作

目录 1:前言 2:地址(门牌号) 3:STM32地址映射 4:位带操作原理 5:位操作代码实现 1:前言 以前学51的时候,没有注重地址的这个概念,因为51寄存器少,一个reg52.h里面涵盖了你要用到的所有寄存器地址,你只需要去写几个字母调用一下就可以了。我甚至一度以为TMOD就是TMOD,单片机生产出来,程序就是这样写,就好像用手机指纹解锁,你只是把手指放上去,手机就解锁了。你以为理所应当,但是手机却做了很多工作。 直到学习32后,由于庞大的寄存器数量...

苏轼圈 4540

基于Cortex-M3内核的处理器位操作技术——“位带”

Cortex-M3处理器位操作技术——“位带”传统的位操作位带操作C语言举例 传统的位操作 我们传统的位操作方法是用“&(与)”、“|(或)”指令来实现对数据某一位的置一或者清零。而这个过程一般是: 1.把数据加载到寄存器中 2.在寄存器间对数据进行运算 3.将算好的数据写入到内存中 所以单个位操作过程将耗时数个时钟周期,并且增加了代码量。 位带操作 位带技术 1.作用:用一个物理地址(32位),控制一位数据。可实现对设备区和SRAM区存储空间寄存器的位操作而不需要任何特殊的指令。 2.原理:Cor

qq_44464349的博客 2167

STM32学习笔记:位带操作(Bit_band Operations)

注意:本文中关于STM32的位带操作原理只适用于Cortex-M3和Cortex-M4(F)内核处理器,Cortex-M系列的其他内核处理器可能不支持位段操作(如Cortex-M0内核处理器就不支持位段操作),详情请参考相关内核处理器的指南或技术参考手册(TRM)。 1、位带操作 CPU不能直接对位带区中的单个数据位位寻址,只能通过对位带别名区的访问(或读/写)实现对位带区单个数据位的访问(或读/...

lizhibing115的博客 1177

Cortex-M4F位带操作与中断机制:嵌入式开发的原子性与实时性基石

在嵌入式系统开发中,对内存和外设寄存器的精确控制是基础需求。传统“读-改-写”操作在多任务环境下存在非原子性问题,可能导致数据竞争。Cortex-M系列处理器通过硬件层面的位带机制,为特定内存区域的每个比特映射一个独立的32位别名地址,使得对单个比特的读写操作变为一次原子性内存访问,从根本上解决了竞态条件,提升了代码的安全性和可读性。与此同时,嵌套向量中断控制器作为异常处理的核心,通过可配置的优先级分组、硬件优化的尾链与晚到机制,确保了实时事件能够得到及时、确定的响应。这两大特性共同构成了嵌入式实时系统的坚

ama7449的博客 1003

ARM Cortex-M 位带操作实战:SRAM 与 外设区 1MB 空间的原子位访问

本文深入解析ARM Cortex-M内核的位带操作技术,从硬件原理到GPIO极速翻转实战,详细介绍了SRAM与外设区1MB空间的原子位访问方法。通过位带机制,开发者可以实现单周期原子操作,显著提升嵌入式系统性能,特别适用于高频GPIO切换和实时控制场景。

weixin_29166013的博客 332

Keil创建新的STM32工程以及Cortex-M3的位带操作

  上周实验课照例很水,首先是准备工作没做好,J-Link的驱动没装好,而且由于机房电脑本身的问题好多机子无法正确装驱动,或者在进入keil后会弹出莫名错误、闪退等情况,方老师说得好,当我们浪费时间再做这些事情的时候(浪费时间很大程度上是因为机房电脑造成的),好一点的学校早就在写程序了。这么多时间已经浪费了,还有多少能剩下来看代码进而理解它呢?   从新建一个工程开始学习,再加上上周实...

diju5626的博客 623
上一篇: Mongodb亿级数据量的性能测试
下一篇: 平时php开发工作中常用的几个命令
jakqigle
博客等级 码龄19年 37粉丝 54原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值