当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 - 微信小程序预览信息提示

相关文章
|
1月前
|
存储 分布式计算 Hadoop
HadoopCPU、内存、存储限制
【7月更文挑战第13天】
102 14
|
20天前
|
存储 固态存储 芯片
计算机中内存与存储
【7月更文挑战第28天】
24 1
|
25天前
|
存储 弹性计算 程序员
新手程序员如何阿里云服务器配置?新人开发者CPU内存带宽存储怎么选?
对于新手开发者、个人或学生选择阿里云服务器,推荐ECS经济型e实例(ecs.e-c1m1.large),适用于小型网站或轻量应用。配置2核2G内存、3M固定带宽、40G ESSD系统盘,仅99元/年且续费同价。
|
6天前
|
存储 编译器 C语言
数据在内存中的存储
数据在内存中的存储
|
1月前
|
运维 DataWorks 安全
DataWorks产品使用合集之如何查看空间资源、CPU、内存和存储空间容量
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
1月前
|
存储 Java 程序员
Java面试题:方法区在JVM中存储什么内容?它与堆内存有何不同?
Java面试题:方法区在JVM中存储什么内容?它与堆内存有何不同?
48 10
|
29天前
|
存储 Rust JavaScript
Rust 问题之TypeScript 代码,变量 s 存储在栈内存中还是堆内存中如何解决
Rust 问题之TypeScript 代码,变量 s 存储在栈内存中还是堆内存中如何解决
|
1月前
|
机器学习/深度学习 分布式计算 大数据
MaxCompute产品使用合集之如何查看空间资源、CPU和内存以及存储空间容量
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
2月前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
38 2
|
2月前
|
存储
数据在内存中的存储(2)
数据在内存中的存储(2)
40 5