本周系统设计复习:
- Java 如何工作
- Gitflow 分支如何工作?
- 成为 AI 工程师 | 从做中学 | 基于队列的课程
- Redis 查询的生命周期
- 创建新 AI 模型的 6 个步骤
Java 如何工作
你有没有想过当你运行 Java 程序时幕后发生了什么?让我们看看:
Java(JVM 运行时)
- Java 源代码(.java)使用 javac 编译成.class 字节码
- 类加载器将字节码加载到 Java 运行时环境(JVM)中
- 字节码被验证和执行
- JVM 使用解释器和 JIT 编译器,频繁使用的代码(热路径)被转换为本机机器码,使 Java 更快
Gitflow 分支策略如何工作
Gitflow 分支策略是一个 Git 工作流,将开发组织为 dedicated 分支用于功能、发布、热修复和主生产线。它是有定期版本部署项目的理想 Git 分支策略。
工作原理
开发从 develop 分支开始 新功能在此集成。
每个功能分支从 develop 创建 一旦功能完成就合并回 develop。
准备发布时 从 develop 创建发布分支用于最终 bug 修复。
发布分支合并到 main(用于生产)和回 develop 保持一致历史。
对于紧急修复 直接从 main 创建热修复分支,然后合并回 main 和 develop。
Redis 持久化机制
Redis 是内存数据库,这意味着所有数据都生活在 RAM 中以提高速度。然而,如果服务器崩溃或重启,数据可能丢失。为解决这个问题,Redis 提供两种持久化机制将数据写入磁盘:
1. AOF(仅追加文件)
当客户端发送命令时,Redis 首先在内存(RAM)中执行它。之后,Redis 通过将命令追加到磁盘上的 AOF 文件来记录命令。这确保每个操作可以稍后重放以重建数据集。由于命令首先执行然后记录,写入是非阻塞的。恢复过程使用事件日志重放记录的命令。
2. RDB(Redis 数据库)
Redis 可以定期获取整个数据集的快照,而不是写入每个命令。主线程 fork 一个子进程(bgsave),它共享主线程的所有内存数据。bgsave 子进程从主线程读取数据并将其写入 RDB 文件。Redis 使用写时复制。当主线程修改数据时,创建数据副本,进程在该副本上工作以便写入不被阻塞。然后快照作为 RDB 文件写入磁盘,允许 Redis 在需要时快速重新加载快照到内存。
3. 混合方法
在生产中,Redis 通常同时使用 AOF 和 RDB。RDB 提供快速重新加载和紧凑快照。AOF 通过记录自上次快照以来的每个操作保证持久性。
创建新 AI 模型的 6 个步骤
1. 设定目标
通过识别用例、检查可行性和设定清晰 KPI 来定义 AI 模型要解决的问题。
2. 数据准备
收集和清理原始数据,工程有用特征,并将数据分割为训练、验证和测试集。
3. 选择算法
为你的问题选择正确算法并选择框架(例如,TensorFlow、PyTorch、Sci-kit Learn)。
4. 训练模型
将数据输入模型,迭代训练,并调整超参数直到性能提高。
5. 评估和测试模型
在未见数据上测试,分析性能指标,并检查偏见或不公平结果。
6. 部署模型
选择部署策略,构建 API,并为生产使用容器化模型。
本文为学习目的的个人翻译,译文仅供参考。
原文链接:EP181: How Java Works。
版权归原作者或原刊登方所有。本文为非官方译本;如有不妥,请联系删除。