当hahaAI超过小程序内存时!

简介: 今年年底,我将发布与我的书相关的所有应用,包括微信小程序、个人网站以及谷歌浏览器扩展程序。

前言


今年年底,我将发布与我的书相关的所有应用,包括微信小程序、个人网站以及谷歌浏览器扩展程序。


其中,我的微信小程序hahaAI共有4个Tabbar选项,请看介绍:


  1. 「AI应用」页:包含三个功能,基于CNNMNIST手写数字识别、基于PoseNet的人体姿态检测以及基于Coco SSD的对象检测;
  2. 「生活服务」页:包含两个功能,基于国内城市名称的天气预报查询以及基于单号的快递信息查询;
  3. 「发现」页:包含两个功能,语音识别以及基于OCR技术识别身份证、银行卡、驾驶证等;
  4. 「关于作者」页:主要内容为我的个人介绍;


当我准备在本地预览时,开发者工具显示如下提示信息:


微信图片_20220611041719.png

图1 - 微信小程序提示信息


很明显,我的小程序超过了微信官方限定的大小,在本文中,我将提供两种方法解决这个问题,第一种方法采用微信官方提供的「分包加载」;第二种方法相比起来简单粗暴,即直接删掉相关包,请看文章。


1. 分包加载


「分包加载」需要微信客户端版本大于6.6.0,基础库版本大于1.7.3,开发者工具版本大于1.01.1712150


某些情况下,开发者需要将小程序划分成不同的子包,在构建时打包成不同的分包,用户在使用时按需进行加载。


在构建小程序分包项目时,构建会输出一个或多个分包。每个使用分包小程序必定含有一个主包。所谓的主包,即放置默认启动页面/TabBar 页面,以及一些所有分包都需用到公共资源/JS 脚本;而分包则是根据开发者的配置进行划分。


在小程序启动时,默认会下载主包并启动主包内页面,当用户进入分包内某个页面时,客户端会把对应分包下载下来,下载完成后再进行展示。


目前小程序分包大小有以下限制:


  1. 整个小程序所有分包大小不超过 20M
  2. 单个分包/主包大小不能超过 2M


对小程序进行分包,可以优化小程序首次启动的下载时间,以及在多团队共同开发时可以更好的解耦协作。


具体使用方法请参考:


  1. 使用分包:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/basic.html
  2. 独立分包:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/independent.html
  3. 分包预下载:https://developers.weixin.qq.com/miniprogram/dev/framework/subpackages/preload.html


2. 删掉相关包


相比第一种方法,第二种方法就比较简单粗暴了,我们需要对我们整体项目的代码做一次清理,清理掉无关代码,必要时可以删除一些不必要的功能,也可以将本地的部分图片、音视频资源等通过云存储存放起来,这些措施都能帮助我们减小微信小程序项目的大小,经过处理之后,我的微信小程序项目大小减小到了2049KB


微信图片_20220611041724.png

图2 - 微信小程序预览信息提示

相关文章
|
4月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
288 14
|
3月前
|
存储 编译器 C语言
【C语言篇】数据在内存中的存储(超详细)
浮点数就采⽤下⾯的规则表⽰,即指数E的真实值加上127(或1023),再将有效数字M去掉整数部分的1。
378 0
|
26天前
|
存储 C语言
数据在内存中的存储方式
本文介绍了计算机中整数和浮点数的存储方式,包括整数的原码、反码、补码,以及浮点数的IEEE754标准存储格式。同时,探讨了大小端字节序的概念及其判断方法,通过实例代码展示了这些概念的实际应用。
55 1
|
30天前
|
存储
共用体在内存中如何存储数据
共用体(Union)在内存中为所有成员分配同一段内存空间,大小等于最大成员所需的空间。这意味着所有成员共享同一块内存,但同一时间只能存储其中一个成员的数据,无法同时保存多个成员的值。
|
1月前
|
存储 弹性计算 算法
前端大模型应用笔记(四):如何在资源受限例如1核和1G内存的端侧或ECS上运行一个合适的向量存储库及如何优化
本文探讨了在资源受限的嵌入式设备(如1核处理器和1GB内存)上实现高效向量存储和检索的方法,旨在支持端侧大模型应用。文章分析了Annoy、HNSWLib、NMSLib、FLANN、VP-Trees和Lshbox等向量存储库的特点与适用场景,推荐Annoy作为多数情况下的首选方案,并提出了数据预处理、索引优化、查询优化等策略以提升性能。通过这些方法,即使在资源受限的环境中也能实现高效的向量检索。
|
1月前
|
存储 编译器
数据在内存中的存储
数据在内存中的存储
42 4
|
1月前
|
存储 Java
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
这篇文章详细地介绍了Java对象的创建过程、内存布局、对象头的MarkWord、对象的定位方式以及对象的分配策略,并深入探讨了happens-before原则以确保多线程环境下的正确同步。
53 0
JVM知识体系学习四:排序规范(happens-before原则)、对象创建过程、对象的内存中存储布局、对象的大小、对象头内容、对象如何定位、对象如何分配
|
1月前
|
存储 机器学习/深度学习 人工智能
数据在内存中的存储
数据在内存中的存储
|
1月前
|
存储 C语言
深入C语言内存:数据在内存中的存储
深入C语言内存:数据在内存中的存储
|
1月前
|
存储
整型在内存中的存储
本文详细解释了计算机中整型数据的三种二进制表示方法:原码、反码和补码,并展示了如何将正数和负数的原码转换为反码和补码。
38 0
下一篇
无影云桌面