首页 文章 精选 留言 我的

精选列表

搜索[性能],共10011篇文章
优秀的个人博客,低调大师

性能测试 -- 实际问题

现象: 自动化云主机(10.199.146.xx )上的osp-cart服务过一段时间会自动停掉 分析过程: 1、通过top命令,查看整理的资源情况,发现osp-cart服务进程占用内存很多,大概占用了62%的内存; 2、通过free -m命令,查看具体内存,发现可用内存只有400M; 3、查看系统日志tail -n 100 /var/log/messages ,发现是Out of memory: Killed process 28812, UID 0, (java). 处理方式: 1、调整osp-cart服务的占用内存,通过调整启动脚本中的Xms和Xmx参数,改变其占用内存,Xmx最大内存占用,Xms初始化内存占用; JVM_OPTS="-s $SERVER_API -t $START_TIME -Dspring.profiles.active=$CFG -Xmx1024m -Xms1024m " 2、重新构建自动化job,正常;虽千万人,吾往矣!

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

性能优化之APK瘦身

参考: 《Android高级进阶》第24章 [Android技术专题]APK瘦身看这一篇文章就够了 Android 瘦身实践 Android APP终极瘦身指南 为什么瘦身? 省流量 给用户一个好印象 为什么APP会变胖? Android系统碎片化严重,为了适配,每个APP要支持的主流dpi分类会很多,dpi越多,那么就相当于资源文件变多,也许一个图标,我们要给它对应的ldpi,mdpi,hdpi,xhdpi,xxhdpi,xxxhdpi等都要弄一张图标文件 Android生态系统的不断发展成熟,出现了许多方便开发者的函数库和SDK,库或SDK引入过多,不可避免的引入很多重复功能代码和资源文件。 APK文件结构 apk解压后的目录 AndroidManifest.xml:系统清单文件 assets:存放用来需要打包到Android应用程序的静态资源文件,例如图片资源文件,json配置文件,渠道配置文件,二进制数据文件 classes.dex:应用程序的可执行文件,可以通过反编译工具反编译后进行查看,如果APP的方法数超过65K的限制,需要进行分包,这样就会存在多个dex文件。 lib:存放程序依赖的不同ABI类型的.so文件 res:存放应用的资源文件,包括图片资源,字符串资源,颜色资源,尺寸资源等,这些资源都会出现在资源清单文件R.java的索引中 res目录g resources.arsc:资源索引表,用来描述具有ID值的资源的配置信息 META-INF:存放签名相关的信息,用于验证APK包的完整性以及保证系统的安全,主要包含三个文件 MANIFEST.MF:主要存放APK包中每个文件的名字及每个文件的SHA1哈希值 MANIFEST.MF CERT.SF:通常每个APP会有一个特定的名字,例如BDMOBILE.SF,NETDISK_.SF等,它保存的是MANIFEST.MF的哈希值以及MANIFEST.MF文件中每一个哈希项的哈希值 CERT.RSA:保存了apk包的签名和证书的公钥信息 从中可以分析出,一个APK包中的组成中,对APK大小影响较大的文件分别是 Java代码文件:classs*.dex Native代码文件:.so文件 资源文件:包括assets文件,res目录以及resources.arsc索引文件 优化图片资源占用的空间 使用一套设计图,建议取720p的资源,放到xhdpi目录 使用webp格式的图片,webp支持有损与无损压缩,在既保证图片质量有要限制图片大小的需求下,webp应该是首选。 有损压缩tinypng https://tinypng.com/ 无损压缩ImageOptim 有损压缩ImageAlpha 使用jpg格式,jpg将会比png的大小有显著的优势,在启动页,活动页等之类的大图展示区采用jpg将是非常明智的选择。 尽量使用NinePatch格式的PNG图 使用shape背景,背景或图标用代码实现,特别是在扁平化盛行的当下,很多纯色的渐变的圆角的图片都可以用shape实现,代码灵活可控,省去了大量的背景图片。 使用着色方案:相信你的工程里也有很多selector文件,也有很多相似的图片只是颜色不同,通过着色方案我们能大大减轻这样的工作量,减少这样的文件。借助于android support库可实现一个全版本兼容的着色方案 使用LInt删除无用资源,Proguard只会对Java代码起作用,Lint会分析res目录下面的资源文件,分析后给给出哪些资源没用,但不会分析assets目录下面的资源文件。 在线加载素材,不过不是很常用 使用Android Gradle配置 minifyEnable:是否开启Proguard混淆,设置为true时同时设置Proguard配置文件名和规则,Proguard的作用不仅仅是混淆,它还具有压缩,优化等功能,他会遍历所有代码并找出没有引用到的代码,这些无用代码字啊生成最终的APL文件之前会被剔除掉,同时Proguard会使用简洁的字符组合替换原来的类名,属性名等,在一定程度上减少APP的大小。 shrinkResource:表示是否去除无用的resource文件,但是它依赖minifyEnable,需要nimifyEnabe为true时才生效 resConfigs 通过resConfig的取值设置要剔除的资源 defaultConfig{ resConfigs "en" , "fr" resConfigs "nodpi","hdpi","xhdpi" } 减少库的使用 在工程的build.gradle文件增加ndk.abiFilters配置,指定我们需要的ABI类型,建议实际工作的配置是只保留armable、armable-x86下的so文件,算是一个折中的方案。 避免重复库 使用更小的库 资源混淆 方案有美团和微信两种 精简功能业务 重构和优化代码 支持插件化 把APP分割开来,实现动态加载代码

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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部分的功能。

用户登录
用户注册