标签 性能优化 下的文章

TensorRT 是什么?为什么需要它? 一个意外:TensorRT 11.x 的 API 大改 准备环境:Windows 上装 TensorRT 核心概念:三层架构 精度模式对比 Step 1:ONNX 转 FP32 Engine(入门) 核心代码 推理时的坑:get_tensor_mode 参数类型 Step 2:GPU 推理和 CUDA 内存管理 Step 3:ModelOpt FP16 转换 ModelOpt 自动转换 效果对比 Step 4:多 batch 基准测试(GPU 到底快在哪?) 关键发现 这个结果说明了什么? 算子融合:TensorRT 的核心优化手段 文件说明与实践总结 踩坑记录 OptimizationProfile 忘记设置 get_tensor_mode 传入整数 FP16 Engine 比

- 阅读剩余部分 -

1. 真正成熟的工程,会把启动速度当成架构问题 2. 好的扩展系统,不是接口多,而是抽象统一 3. 它最有价值的部分,不是 UI,而是把对话当成“会话引擎”来写 4. 它对并发很克制,而这种克制恰恰说明它成熟 结语 本文首发地址 https://h89.cn/archives/xxx.html 很多人看 Claude CLI 这份源码(gitee.com@chenjim/claude-code),先看功能:命令多不多,参数全不全,能不能用。 但真正让我多看几眼的,不是功能表有多长,而是复杂度已经这么高了,系统居然还没散。 它表面上是个命令行工具,背后其实扛着终端 UI、命令分发、工具调用、权限控制、技能与插件加载、长会话状态维护、上下文压缩、远程桥接、MCP 接入。这样的系统,难的从来不是把能力做出来,而是一路加功能时别失控。 这份源码里能看到一种很

- 阅读剩余部分 -

一、先说我的判断 二、AutoFDO 了解一下就够了 三、后台与功耗:别把 Wake Lock 当常规方案 四、常见后台场景,我一般会这样改 1. 用户主动上传或下载:优先系统方案 2. 一次性或周期同步:优先 WorkManager 3. 位置更新:减少频率,利用批处理 4. 其他几个容易踩坑的场景 五、内存优化:先抓大头,别一上来就玩花活 1. Bitmap 和大对象生命周期 2. 缓存不是越多越好 3. 泄漏防护:比“优化技巧”更值得先做 六、测量工具链:没有数据,先别急着下结论 1. Perfetto 适合看“系统全景” 2. Android Studio Profiler 适合日常定位 3. Macrobenchmark 适合做回归 七、Jetpack Compose:别只盯着“重组”两个字 1. 列表优先保证稳定 key 2. derived

- 阅读剩余部分 -

1. Android版本Bitmap内存管理历史演进 Android 2.3及以下(API ≤ 10) Android 3.0-7.1(API 11-25) Android 8.0+(API 26+) 2. 当前最佳实践(2025年) 不需要手动回收的场景 仍需要手动回收的场景 3. 现代化的Bitmap管理策略 使用BitmapFactory.Options优化: 使用inBitmap复用内存 使用LruCache与WeakReference管理Bitmap: 4. 推荐的现代化方案 1. 使用成熟的图片加载库: 2. 在Jetpack Compose中: 5. 总结建议 ✅ 现代Android开发中(API 26+) ⚠️ 仍需手动管理的场景 🎯 最佳实践 本文首发地址 https://h89.cn/arch

- 阅读剩余部分 -

什么是16K页面对齐?告别4K时代 拥抱16K:性能与效率的双重飞跃 对开发者的要求与详细适配指南 第一步:升级您的构建工具链 第二步:验证所有原生库(.so)的对齐 第三步:处理第三方SDK和预编译库 第四步:启用测试环境并充分测试 应用开启16K对齐后,低SDK版本上是否可以正常运行? 用户将如何受益? 结论:迈向更高效的安卓生态 本文首发地址 https://h89.cn/archives/418.html 随着安卓系统的不断演进,谷歌在提升用户体验和系统性能的道路上从未停歇。备受期待的安卓16将迎来一项深刻的底层变革——全面转向16K页面对齐(安卓15未强制要求)。这并非一个简单的数字变化,而是一场旨在重塑安卓设备性能与效率的深刻革命。本文将深入探讨安卓中16K对齐的含义、其带来的显著优势以及对开发者和最终用户的影响。 什么是16K页面对齐

- 阅读剩余部分 -

本地首发地址 https://h89.cn/archives/189.html 最新更新地址 https://gitee.com/chenjim/chenjimblog 原文地址 https://www.romainguy.dev/posts/2024/speeding-up-isblank/ 最近在优化 Jetpack Compose 运行时的部分时,偶然发现了一个看似无害的 API isBlank() 。如果调用的字符串为空或仅由空格字符组成,则此 API 将返回 true 。 但它真的无害吗?让我们看一下 JVM 实现,以更好地了解它的作用: public actual fun CharSequence.isBlank(): Boolean = length == 0 || indices.all { this[it].isWhitesp

- 阅读剩余部分 -

介绍 Perfetto SQL 基础 使用 Perfetto SQL 进行性能分析 总结 相关文章 参考文章 本文首发地址 https://h89.cn/archives/47.html Perfetto 抓取 trace 可参考 https://h89.cn/archives/32.html 介绍 Perfetto 是一个由 Google 开发的高性能、可扩展的事件追踪系统,用于在实时和离线场景下监控系统的性能。 它通过一种简单且强大的查询语言(称为 SQL)来分析和查询事件数据。 在本博客中,我们将深入探讨如何使用 SQL 在 Perfetto 中进行性能分析。 Perfetto SQL 基础 Perfetto SQL 是一种用于查询事件数据的语言,它支持大多数标准的 SQL 操作, 如 SELECT、FROM、WHERE、GROUP BY、ORDE

- 阅读剩余部分 -

1. 保持工具最新 2. 使用 KSP 代替 kapt 3. 避免编译不必要的资源 4. 优化 repositories maven 排序 5. 在调试构建中使用静态构建配置值 6. 使用静态依赖版本 7. 创建库模块 8. 为自定义构建逻辑创建任务 9. 将图像转换为 WebP 10. 禁用 PNG 处理 11. 挑选 JVM 垃圾收集器 12. 增加 JVM 堆大小 13. 使用非传递 R 类 14. 使用非常量 R 类 15. 禁用 Jetifier 标志 16. 使用配置缓存 本文首发地址:https://h89.cn/archives/43.html 最新更新地址:https://gitee.com/chenjim/chenjimblog 1. 保持工具最新 Android 工具几乎每次更新都会获得构建优化和新功能,保持最新版本可以加快构建速度 A

- 阅读剩余部分 -