ForgetSou | Blog

❤ 武统台湾 刻不容缓 ❤

0%

image.png

一. 简述

​ 手机的内存资源是非常有限的,如果一个应用的内存使用量超过了单个进程的上限,就会被操作系统终止使用,正式这个原因,内存管理在iOS中扮演着核心的角色。
​ 与(基于垃圾回收的)Java 运行时不同,Objective-C 和 Swift 的 iOS 运行时使用引用计数。 使用引用计数的负面影响在于,如果开发人员不够小心,那么可能会出现重复的内存释放 和循环引用的情况。

1.内存消耗

​ 内存消耗指的是应用消耗的 RAM。应用中的内存消耗分为两部分:栈大小和堆大小。

1.1 栈大小

​ 可被递归调用的最大方法数
​ 每个方法都有其自己的栈帧,并会消耗整体的栈空间。如果你调 用 main,那么 main 将调用 method1,而 method1 又将调用 method2,这就存在三个栈帧 了,且每个栈帧都会消耗一定字节的内存。

​ 一个方法中最多可以使用的变量个数
​ 视图层级中可以嵌入的最大视图深度
​ 渲染复合视图将在整个视图层级树中递归地调用 layoutSubViews 和 drawRect 方法。如 果层级过深,可能会导致栈溢出。

1.2 堆大小

​ 每个进程的所有线程共享同一个堆。一个应用可以使用的堆大小通常远远小于设备的 RAM 值。例如,iPhone 5S 拥有大约 1GB 的 RAM,但分配给一个应用的堆大小最多不到 512MB。应用并不能控制分配给它的堆。只有操作系统才能管理堆。
​ 使用 NSString、载入图片、创建或使用 JSON/XML 数据、使用视图等都会消耗大量的堆 内存。如果你的应用大量使用图片(与 Flickr 和 Instagram 应用类似),那么你需要格外关 注平均值和峰值内存使用的最小化。
​ didReceiveMemoryWarning
​ 建议使用量不要超过 80%~85%,要给操作系统的核 心服务留下足够多的内存。

阅读全文 »

​ 最近在升级飞机的SDR固件,需要使用USB串口进行升级,就记录下使用Minicom USB串口升级固件的方式。

​ minicom是一个串口通信工具,就像Windows下的超级终端。可用来与串口设备通信,如调试交换机和Modem等。它的Debian软件包的名称就叫minicom。

1. minicom的安装

brew 安装

$ brew install minicom

在安装过程中报错

Running Homebrew as root is extremely dangerous and no longer supported.
As Homebrew does not drop privileges on installation you would be giving all
build scripts full access to your system.

​ 以根用户身份运行自制程序非常危险,不再受支持。
​ 由于Homebrew不会放弃安装权限,因此您将授予所有生成脚本对系统的完全访问权限。

解决方案:

$ sudo chown -R `whoami` /usr/local/Homebrew/
$ sudo chown -R $(whoami) $(brew --prefix)/*
$ sudo mkdir /usr/local/Frameworks
$ sudo chown -R `whoami` /usr/local/Frameworks/
阅读全文 »