首页 文章 精选 留言 我的

精选列表

搜索[压缩算法],共10000篇文章
优秀的个人博客,低调大师

【原/转】ios指令集以及基于指令集的app包压缩策略

iPhone指令集 本文所讲的内容都是围绕iPhone的CPU指令集(想了解ARM指令集的同学请点击 这里),现在先说说不同型号的iPhone都使用的是什么指令集: ARMv8/ARM64=iPhone5s,iPadAir,RetinaiPadMini ARMv7s=iPhone5,iPhone5c,iPad4 ARMv7=iPhone3GS,iPhone4,iPhone4S,iPod3G/4G/5G,iPad,iPad2,iPad3,iPadMini ARMv6=iPhone,iPhone3G,iPod1G/2G 设置你想支持的指令集 Xcode中关于生成二进制包指令集相关的设置项有以下三个: Architectures 官方文档说明: Space-separatedlistofidentifiers.Specifiesthearchitectures(ABIs,processormodels)towhichthebinaryistargeted.Whenthisbuildsettingspecifiesmorethanonearchitecture,thegeneratedbinarymaycontainobjectcodeforeachofthespecifiedarchitectures. 该编译选项指定了工程将被编译成支持哪些指令集,支持指令集是通过编译生成对应的二进制数据包实现的,如果支持的指令集数目有多个,就会编译出包含多个指令集代码的数据包,造成最终编译的包很大。 Valid Architectures 官方文档说明: Space-separatedlistofidentifiers.Specifiesthearchitecturesforwhichthebinarymaybebuilt.Duringthebuild,thislistisintersectedwiththevalueofARCHSbuildsetting;theresultinglistspecifiesthearchitecturesthebinarycanrunon.Iftheresultingarchitecturelistisempty,thetargetgeneratesnobinary. 该编译项指定可能支持的指令集, 该列表和Architectures列表的交集,将是Xcode最终生成二进制包所支持的指令集。 比如,你的Valid Architectures设置的支持arm指令集版本有:armv7/armv7s/arm64,对应的Architectures设置的支持arm指令集版本有:armv7s,这时Xcode只会生成一个armv7s指令集的二进制包。 Build Active Architecture Only 官方文档说明: Booleanvalue.Specifieswhethertheproductincludesonlyobjectcodeforthenativearchitecture. 该编译项用于设置是否只编译当前使用的设备对应的arm指令集。 当该选项设置成YES时,你连上一个armv7指令集的设备,就算你的Valid Architectures和Architectures都设置成armv7/armv7s/arm64,还是依然只会生成一个armv7指令集的二进制包。 当然该选项起作用的前提是你的Xcode必须成功连接了调试设备。如果你没有任何活跃设备,即Xcode没有成功连接调试设备,就算该设置项设置成YES依然还会编译Valid Architectures和Architectures指定的二进制包。 通常情况下,该编译选项在Debug模式都设成YES,Release模式都设成NO。 说明 指令集都是可以向下兼容的 比如,你的设备是armv7s指令集,那么它也可以兼容运行比armv7s版本低的指令集:armv7、armv6 xcode对armv6指令集的支持 Xcode4.5起不再支持armv6 如何选择支持的指令集 如果你的软件对安装包大小非常敏感,你可以减少安装包中的指令集数据包,而且这能达到立竿见影的效果。 我们的项目之前支持的指令集是armv7/armv7s,后来改成只支持armv7后,比原来小了10MB左右。目 前AppStore上的一些知名应用,比如百度地图、腾讯地图通过反汇编工具查看后,也都只支持armv7指令集。 根据向下兼容原则,armv7指令集的应用是可以正常在支持armv7s/arm64指令集的机器上运行的。 不过对于armv7s/arm64指令集设备来说,使用运行armv7应用是会有一定的性能损失,不过这种损失有多大缺乏权威统计数据,个人认为是不会影响用户体验的。 本文转自编程小翁博客园博客,原文链接:http://www.cnblogs.com/wengzilin/p/4053771.html,如需转载请自行联系原作者

优秀的个人博客,低调大师

重新编译hadoop-2.7.2-src的native以支持Snappy解压压缩库

1. 下载所需要的源码包 snappy-1.1.1.tar.gz、protobuf-2.5.0.tar.gz、hadoop-2.7.2-src.tar.gz [root@sht-sgmhadoopnn-01 ~]# cd /hadoop [root@sht-sgmhadoopnn-01 hadoop]# mkdir native_snappy [root@sht-sgmhadoopnn-01 hadoop]# cd native_snappy [root@sht-sgmhadoopnn-01 native_snappy]# wget http://pkgs.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/snappy-1.1.1.tar.gz --2016-06-21 15:23:35-- http://pkgs.fedoraproject.org/repo/pkgs/snappy/snappy-1.1.1.tar.gz/8887e3b7253b22a31f5486bca3cbc1c2/snappy-1.1.1.tar.gz Resolving pkgs.fedoraproject.org... 209.132.181.4 Connecting to pkgs.fedoraproject.org|209.132.181.4|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 1777992 (1.7M) [application/x-gzip] Saving to: “snappy-1.1.1.tar.gz” 100%[==========================================================================================================================>] 1,777,992 56.2K/s in 32s 2016-06-21 15:24:08 (54.8 KB/s) - “snappy-1.1.1.tar.gz” saved [1777992/1777992] You have mail in /var/spool/mail/root [root@sht-sgmhadoopnn-01 native_snappy]# ###百度云盘下载,然后rz上传http://pan.baidu.com/share/link?uk=3694838921&shareid=1608967052&third=0&adapt=pc&fr=ftw [root@sht-sgmhadoopnn-01 native_snappy]# rz rz waiting to receive. Starting zmodem transfer. Press Ctrl+C to cancel. Transferring protobuf-2.5.0.tar.gz... 100% 2345 KB 2345 KB/sec 00:00:01 0 Errors You have mail in /var/spool/mail/root [root@sht-sgmhadoopnn-01 native_snappy]# [root@sht-sgmhadoopnn-01 native_snappy]# wget http://apache.01link.hk/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz --2016-06-21 15:37:46-- http://apache.01link.hk/hadoop/common/hadoop-2.7.2/hadoop-2.7.2-src.tar.gz Resolving apache.01link.hk... 101.78.134.82 Connecting to apache.01link.hk|101.78.134.82|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 18290860 (17M) [application/x-gzip] Saving to: “hadoop-2.7.2-src.tar.gz” 100%[==========================================================================================================================>] 18,290,860 248K/s in 54s 2016-06-21 15:38:40 (330 KB/s) - “hadoop-2.7.2-src.tar.gz” saved [18290860/18290860] You have mail in /var/spool/mail/root [root@sht-sgmhadoopnn-01 native_snappy]# [root@sht-sgmhadoopnn-01 native_snappy]# ls -l total 21952 -rw-r--r-- 1 root root 18290860 Jan 26 09:29 hadoop-2.7.2-src.tar.gz -rw-r--r-- 1 root root 2401901 Jun 21 15:28 protobuf-2.5.0.tar.gz -rw-r--r-- 1 root root 1777992 Feb 24 2014 snappy-1.1.1.tar.gz [root@sht-sgmhadoopnn-01 native_snappy]# 2. 准备编译环境 [root@host /]# yum -y install svn Loaded plugins: fastestmirror, refresh-packagekit, security Loading mirror speeds from cached hostfile Setting up Install Process No package svn available. [root@sht-sgmhadoopnn-01 yum.repos.d]# lsb_release -a LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch Distributor ID: CentOS Description: CentOS release 6.5 (Final) Release: 6.5 Codename: Final You have mail in /var/spool/mail/root [root@sht-sgmhadoopnn-01 yum.repos.d]# ###Centos yum 安装软件 No package XXX available. http://blog.itpub.net/30089851/viewspace-2120628/ [root@sht-sgmhadoopnn-01 yum.repos.d]# yum install svn [root@sht-sgmhadoopnn-01 yum.repos.d]# yum install autoconf automake libtool cmake [root@sht-sgmhadoopnn-01 yum.repos.d]# yum install ncurses-devel [root@sht-sgmhadoopnn-01 yum.repos.d]# yum install openssl-devel [root@sht-sgmhadoopnn-01 yum.repos.d]# yum install gcc* 3. 编译安装snappy # 用root用户执行以下命令 [root@sht-sgmhadoopnn-01 native_snappy]#tar -zxvf snappy-1.1.1.tar.gz [root@sht-sgmhadoopnn-01 native_snappy]# cd snappy-1.1.1/ [root@sht-sgmhadoopnn-01 snappy-1.1.1]# ./configure [root@sht-sgmhadoopnn-01 snappy-1.1.1]# make [root@sht-sgmhadoopnn-01 snappy-1.1.1]# make install 4. 查看snappy库文件 [root@sht-sgmhadoopnn-01 snappy-1.1.1]# ls -lh /usr/local/lib |grep snappy -rw-r--r-- 1 root root 229K Jun 21 15:46 libsnappy.a -rwxr-xr-x 1 root root 953 Jun 21 15:46 libsnappy.la lrwxrwxrwx 1 root root 18 Jun 21 15:46 libsnappy.so -> libsnappy.so.1.2.0 lrwxrwxrwx 1 root root 18 Jun 21 15:46 libsnappy.so.1 -> libsnappy.so.1.2.0 -rwxr-xr-x 1 root root 145K Jun 21 15:46 libsnappy.so.1.2.0 [root@sht-sgmhadoopnn-01 snappy-1.1.1]# 5. 编译安装protobuf # 用root用户执行以下命令 [root@hadoop-01 snappy-1.1.1]# cd ../ You have mail in /var/spool/mail/root [root@hadoop-01 native_snappy]# tar -zxvf protobuf-2.5.0.tar.gz [root@hadoop-01 native_snappy]# cd protobuf-2.5.0/ [root@hadoop-01 protobuf-2.5.0]# ./configure [root@hadoop-01 protobuf-2.5.0]# make [root@hadoop-01 protobuf-2.5.0]# make install # 查看protobuf版本以测试是否安装成功 [root@hadoop-01 protobuf-2.5.0]# protoc --version protoc: error while loading shared libraries: libprotobuf.so.8: cannot open shared object file: No such file or directory [root@hadoop-01 protobuf-2.5.0]# export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib You have mail in /var/spool/mail/root [root@hadoop-01 protobuf-2.5.0]# protoc --version libprotoc 2.5.0 [root@hadoop-01 protobuf-2.5.0]# 6. 编译hadoop native [root@hadoop-01 native_snappy]# tar -zxvf hadoop-2.7.2-src.tar.gz [root@hadoop-01 native_snappy]# cd hadoop-2.7.2-src/ [root@hadoop-01 hadoop-2.7.2-src]# mvn clean package -DskipTests -Pdist,native -Dtar -Dsnappy.lib=/usr/local/lib -Dbundle.snappy ......... ......... [INFO] ------------------------------------------------------------------------[INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 20:58 min [INFO] Finished at: 2016-06-21T19:12:51+08:00 [INFO] Final Memory: 179M/521M [INFO] ------------------------------------------------------------------------ [root@hadoop-01 hadoop-2.7.2-src]# 7.执行成功后,hadoop-dist/target/hadoop-2.7.2.tar.gz即为新生成的二进制安装包。 [root@hadoop-01 hadoop-2.7.2-src]# ll hadoop-dist/target/hadoop-2.7.2.tar.gz -rw-r--r-- 1 root root 195117479 Jun 21 19:12 hadoop-dist/target/hadoop-2.7.2.tar.gz [root@hadoop-01 hadoop-2.7.2-src]# 8.重命名为hadoop-2.7.2-snappy.tar.gz [root@sht-sgmhadoopnn-01 hadoop-2.7.2-src]# cp hadoop-dist/target/hadoop-2.7.2.tar.gz /tmp/hadoop-2.7.2-snappy.tar.gz

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册