自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(232)
  • 收藏
  • 关注

原创 Swift - 引用计数

Swift 和 Objective-C 都使用 ARC 来管理对象的内存,确保在没有强引用时自动释放对象。在 Swift 中,使用 weak 和 unowned 修饰符来处理弱引用和循环引用,而在 Objective-C 中使用 __weak 和 __unsafe_unretained。Swift 的语法更简洁,且类型安全性更高,使得内存管理更加直观。通过理解引用计数的机制和两者之间的区别,开发者可以更有效地管理内存,避免内存泄漏和其他相关问题。

2025-02-15 15:28:13 500

原创 Swift - 方法派发机制

静态派发:适用于值类型、Final 类和方法,性能最高。动态派发:适用于类的继承和重写,通过虚表派发。协议派发:适用于协议方法,通过协议见证表派发。消息转发:适用于与 Objective-C 交互和动态方法解析。理解这些派发机制有助于编写高效且符合预期的 Swift 代码。

2025-02-10 22:16:06 953 1

原创 使用deepseek写一个飞机大战游戏

需要将玩家、敌人和子弹的图像文件(player.png, enemy.png, bullet.png)放在与脚本相同的目录中。这个示例是一个简单的基础版本,可以根据需求进行扩展和优化。:在运行代码之前,需要先安装。

2025-02-09 19:06:27 295

原创 Mac(m1)本地部署deepseek-R1模型

直接下载软件,下载完成之后,安装即可,安装完成之后,命令行中可出现ollama命令。

2025-02-09 18:54:54 747

原创 iOS - block

【代码】iOS - block。

2025-01-15 11:33:20 572

原创 iOS - 底层实现中涉及的类型

/ 基础类型// 指针大小的无符号整数// 指针差值类型// 32位无符号整数// 64位无符号整数// 掩码类型// 用于位掩码操作。

2025-01-15 11:28:31 739

原创 iOS - 内存对齐

【代码】iOS - Objective-C 底层实现中的内存对齐。

2025-01-15 11:18:53 654

原创 iOS - TLS(线程本地存储)

【代码】iOS - Objective-C 底层实现中的 TLS。

2025-01-15 11:06:25 664

原创 iOS - 内存屏障的使用场景

这些机制确保了多线程程序的正确性和可靠性。

2025-01-15 10:53:00 541

原创 iOS - Objective-C 底层中的内存屏障

【代码】iOS - Objective-C 底层中的内存屏障。

2025-01-15 10:46:08 1134

原创 iOS - Objective-C 底层实现中的哈希表

【代码】iOS - 底层实现中的哈希表。

2025-01-15 10:23:00 1395

原创 iOS - 关联对象的实现

【代码】iOS - 关联对象的实现。

2025-01-15 10:06:53 754

原创 iOS - 关联对象

【代码】iOS - 关联对象。

2025-01-12 20:58:16 457

原创 iOS - Method Swizzling

Method Swizzling 是一个强大但危险的特性,需要谨慎使用。

2025-01-12 20:52:45 576

原创 iOS - Objective-C语言的动态性

这些特性使得 Objective-C 能够在运行时灵活地处理对象和方法,支持动态行为和元编程。

2025-01-12 20:47:48 486

原创 iOS - runtime总结

这些特性使 Objective-C Runtime 成为一个强大而灵活的运行时系统。

2025-01-12 20:40:54 404

原创 iOS - 数组的真实类型

【代码】iOS - 数组的真实类型。

2025-01-06 23:49:19 373

原创 iOS - Tagged Pointer

这种优化对于小对象的处理特别有效,是一个重要的性能优化手段。

2025-01-06 22:48:56 643

原创 iOS - 消息机制

这些特性使得 Objective-C 的消息机制既灵活又高效。

2025-01-06 22:37:00 501 1

原创 iOS - 弱引用表(Weak Reference Table)

这个设计在保证功能正确的同时,通过多种优化手段提供了良好的性能。

2025-01-06 22:21:58 542

原创 iOS - 自定义引用计数(MRC)

/ 检查类是否实现了自定义的引用计数方法// 调用路径// 使用系统默认的引用计数机制} else {// 使用类自定义的引用计数机制@end。

2025-01-06 22:05:16 517

原创 iOS - 引用计数(ARC)

【代码】iOS - 引用计数。

2025-01-06 21:59:22 692

原创 iOS - AutoreleasePoolPage 节点为空时的处理逻辑

【代码】iOS - AutoreleasePoolPage 节点为空时的处理逻辑。

2025-01-06 21:46:06 514

原创 iOS - viewWillAppear 和 viewDidAppear 为什么不在同一个 runloop中执行?

【代码】iOS - viewwillappear 和 viewdidappear 在不同的 runloop中执行?

2025-01-06 21:37:09 186

原创 iOS - 线程与AutoreleasePoolPage

1. key 的作用作为索引,用于在线程的特定数据数组中定位数据全局唯一,所有线程共享2. 线程隔离每个线程维护独立的存储空间相同的 key 在不同线程中映射到不同的值3. 内存管理线程退出时自动调用析构函数自动清理线程特定数据4. 性能考虑快速访问:O(1) 的时间复杂度空间效率:每个线程只存储使用的数据这就是为什么使用同一个 key 可以在不同线程中获取不同的 page 的原理。

2025-01-06 21:26:37 575

原创 iOS - AutoreleasePoolPage 内存为什么为4K?

选择4KB页面作为存储单元的原因:1. 系统兼容性符合操作系统内存管理单位优化的内存分配和回收2. 性能考虑更好的缓存利用提高内存访问效率3. 资源平衡合理的存储容量可控的内存使用4. 实用性满足大多数使用场景简化内存管理这种设计在性能和资源使用之间取得了很好的平衡。

2025-01-06 14:08:56 253

原创 iOS - AutoreleasePool

这里涵盖了AutoreleasePool 的主要实现细节和使用注意事项。理解这些内容对于正确使用AutoreleasePool和优化内存管理非常重要。

2025-01-06 14:03:41 597

原创 iOS - 自旋锁与互斥锁

自旋锁不需要上下文切换的原因:线程始终保持运行状态不需要切换到睡眠状态持续占用CPU通过循环等待锁释放不触发线程调度不需要保存和恢复上下文这就是为什么自旋锁在短期锁定场景下性能更好,但在长期锁定场景下可能造成CPU资源浪费的原因。

2025-01-06 13:33:36 207

原创 iOS - 自旋锁

性能优化:避免上下文切换场景匹配:适合短期、快速的操作资源效率:内存占用小,初始化快实现简单:容易维护和调试硬件友好:在现代多核处理器上表现良好不适合长时间持有要考虑优先级反转问题iOS 10 后推荐使用 os_unfair_lock复杂场景应考虑其他锁机制。

2025-01-06 13:13:27 644

原创 iOS - 原子操作

通过这些机制,Objective-C 运行时能够保证多线程环境下的数据一致性和线程安全。

2025-01-06 13:07:42 472

原创 Swift-运算符重载

目录1. 全局运算符重载2. 局部重载3. 结构体遵守Equatable 协议4. 枚举 遵守Equatable协议5. 遵守Comparable协议6. 自定义运算符1. 全局运算符重载struct Point { var x = 0, y = 0}// 全局的重载func + (p1: Point, p2: Point) -> Point{ Point(x: p1.x + p2.x, y: p1.y + p2.y)}var p1..

2021-05-03 11:01:59 936

原创 Swift-属性

属性类型 存储属性 在类或者结构体中可以有储存属性; 属性中可以有属性观察器; 存储属性是存储到结构体或者类结构中的; 枚举中不能有存储属性, 因为枚举变量只能存储case...; 计算属性 计算属性的本质是生成对应的setter方法和getter方法; 计算属性中不能有属性观察器; 计算属性不存在成员变量, 存储在结构体或者类的结构中; 在类和结构体中可以有存储属性; 类型属性 类型属性全局只能有一份, 使用static修饰; 类型属性可以在类、结构体、枚举中...

2021-05-01 14:09:33 407

原创 Swift-闭包的简单使用

public func map<T>(_ transform: (Element) throws -> T) rethrows -> [T]参数是一个闭包使用如下:let array = ["Objective-C", "Swift", "HTML", "CSS", "JavaScript"]// 当闭包作为最后一个参数的时候, 可以省略小括号 '()'array.map(){ value -> String in return valu.

2021-04-30 14:52:51 363

原创 Swift- 基础语法

基本命令:// Swift playground支持markdown语法// 开启路径: Editor -> show rendered markdown//: # 一级标题//: ## 二级标题//: ### 三级标题//: [上一页](@previous)效果如下:常量 使用let修饰/** *常量定义: let修饰 * 常量的值不要求在编译时期确定, 但使用之前必须赋值1次 * 常量声明时必须注明类型, 必须要在使用...

2021-04-11 20:54:46 280

原创 线性回归(MXNet gluon)

from mxnet import ndarray as ndfrom mxnet import autogradfrom mxnet import gluon# 1. 处理数据num_inputs = 2num_examples = 1000true_w = [2, -3.4]true_b = 4.2x = nd.random_normal(shape=(num_examples, num_inputs))y = true_w[0]*x[:, 0]+true_w[1]*x[:, .

2021-02-03 14:12:44 207

原创 卷积神经网络(多分类问题 pytorch)

# 手写数字识别 神经网络处理 高级处理import torchimport torch.nn as nn# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# .

2021-02-02 14:45:49 930 1

原创 多分类问题(卷积神经网络 pytorch)

# 手写数字识别 神经网络处理import torch# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# 分批batch_size = 64# 1. 数据处理.

2021-02-02 13:37:36 676

原创 多分类问题(手写数字 pytorch)

# 手写数字识别import torch# 数据集处理from torchvision import transformsfrom torchvision import datasetsfrom torch.utils.data import DataLoader# 函数 激活函数等import torch.nn.functional as F# 优化器包import torch.optim as optim# 分批batch_size = 64# 1. 数据处理transfo.

2021-02-02 10:50:35 359

原创 糖尿病预测(使用数据加载器 pytorch)

import torchfrom torch.utils.data import Datasetfrom torch.utils.data import DataLoaderimport numpy as np# 1. 数据处理class DiabetesDataset(Dataset): def __init__(self, file_path): xy = np.loadtxt(file_path, delimiter=',', dtype=np.float32).

2021-02-01 17:36:53 667 1

原创 糖尿病的预测(pytorch)

import numpy as npimport torch# 糖尿病预测研判# 1. 处理数据xy = np.loadtxt('diabetes.csv.gz', delimiter=',', dtype=np.float32)x_data = torch.from_numpy(xy[:, :-1])y_data = torch.from_numpy(xy[:, [-1]])# 2. 建立模型# 2. 设计模型 继承自torch.nn.Moduleclass Model(torch.

2021-02-01 17:02:16 1714

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除