GaGa's Blog

One GaGa, One World !

Zig是一种面向系统编程的编译型语言,主要用于操作系统、底层基础设施、游戏引擎、嵌入式软件和高性能应用。它的设计目标是提供接近C语言的控制能力,同时改善内存管理、错误处理和跨平台开发体验。

1.Zig的核心特点

    1. 接近C语言的性能与控制力
      • 编译为原生机器码,不依赖垃圾回收器。
      • 支持指针、手动内存管理和底层数据布局控制。
      • 适合操作系统、驱动程序和高性能组件。
      • 可以直接调用C语言函数和库。
    1. 显式内存管理
      • 内存分配通常通过显式的分配器(Allocator)完成。
      • 调用者可以明确控制内存分配和释放。
      • 更容易理解内存开销,但需要开发者承担资源管理责任。
    1. 强大的编译期计算
      • 使用comptime执行编译期逻辑。
      • 可以在编译时生成类型、计算常量和处理泛型。
      • 减少对独立宏系统的依赖。
      • 编译期和运行期代码使用统一的语言语法。
    1. 显式错误处理
      • 使用!表示函数可能返回错误。
      • 使用try向上传播错误。
      • 使用catch处理错误。
      • 不采用传统的异常抛出机制。
    1. 跨平台交叉编译
      • 可以从一个平台编译出面向其他平台的程序。
      • 编译目标可以指定操作系统、CPU架构和ABI。
      • 工具链集成度较高。
      • 适合需要构建多个平台版本的底层软件。

2.Zig与C、C++、Rust的区别

Read more »

Zig原生支持跨平台编译(Cross-compilation),可以在macOS上直接编译出Windows、Linux等平台的可执行文件,不必为每个平台单独安装一套交叉编译工具链。


1. 支持哪些平台?

目标平台 CPU架构 Zig Target示例
macOS Apple Silicon aarch64-macos
macOS Intel x86_64-macos
Linux x86_64 x86_64-linux-gnu
Linux ARM64 aarch64-linux-gnu
Windows x86_64 x86_64-windows
Windows ARM64 aarch64-windows
WebAssembly WASM32 wasm32-wasi
Read more »

Rosetta 是苹果 macOS 系统中的指令集动态二进制转译技术。它的核心作用是在搭载 Apple Silicon 芯片(ARM64 架构,如 M 系列芯片)的 Mac 上,无缝运行专为 Intel 处理器(x86_64 架构)编译的应用程序,让用户在芯片架构迁移期间无需等待开发者完全重构软件即可直接使用旧版生态。


历史上苹果共推出过两代

  • Rosetta(初代,2006 年): 用于从 PowerPC 架构迁移到 Intel x86 架构。
  • Rosetta 2(2020 年至今): 随 macOS Big Sur 及 M1 芯片推出,用于从 Intel x86_64 架构迁移到 Apple Silicon (ARM64) 架构。现在常说的 Rosetta 默认指 Rosetta 2。
Read more »

Tokio是Rust生态中最主流的异步运行时(Async Runtime)之一,主要用于构建高性能网络服务、HTTP服务器、TCP/UDP服务、微服务和异步I/O应用。Tokio本身不是Web框架,而是提供异步任务调度、异步I/O、定时器和并发管理等基础能力。常与Axum、Tonic等框架配合使用。


1. Tokio的核心架构

a4f74f50c9c5e4e424fa0e2f00535657.png

Read more »

1. 轻量探活接口

专用探活路径(通常无需认证):

1
2
# 检测是否正常响应
curl -s -I http://<JENKINS_HOST>:<PORT>/whoAmI/api/json
  • 如果返回状态码为 200,表示 Jenkins 服务正常且 Web 容器已就绪。
  • 如果返回 503,通常表示 Jenkins 处于正在启动或准备关闭维护状态。
Read more »

道教作为中国土生土长的宗教,其根源可以追溯到上古时期的神话、巫术以及春秋战国时期的先秦道家哲学。它不仅是一套信仰体系,更是中国传统文化中关于生命、宇宙和伦理的重要组成部分。


1.萌芽与起源:从先秦到秦汉

道教并非由某人凭空创造,而是经历了漫长的跨界融合过程:

Read more »

JFR(Java Flight Recorder)是 JVM 内置的低开销运行时诊断工具,适合持续采集:

  • CPU / 方法热点
  • GC
  • 线程阻塞、锁竞争
  • 内存分配
  • IO
  • Socket
  • JVM 异常
  • Safepoint

1. 启动JVM时开启

Read more »

Celery是Python生态中一个成熟的分布式任务队列框架,主要用于将耗时任务从Web请求中剥离出来,放到后台异步执行。它还支持定时任务、任务重试、任务调度和多进程并发处理。

例如,用户提交订单后,系统需要发送邮件、生成PDF、更新统计数据。使用Celery后,Web服务可以先返回响应,后台再逐步完成这些操作。


1.Celery的核心架构

Read more »

1.文件类型符号

类型符 含义 示例
- 普通文件 -rw-r--r--
d 目录 drwxr-xr-x
c 字符设备 crw-rw-rw-(串口)
b 块设备 brw-r-----(硬盘)
l 符号链接 lrwxrwxrwx(快捷方式)
s 套接字文件 srwxrwxrwx(MySQL socket)

2.权限符号

权限 符号 数字 含义
读 r 4 允许读取文件内容
写 w 2 允许修改文件
执行 x 1 允许执行或进入目录
无权限 - 0 无权限
Read more »

miniconda和anaconda区别

Miniconda和Anaconda都是 Anaconda 发行版提供的,主要区别在于安装包的大小和预装的软件包:

  • Miniconda: 是一个最小的Python安装包,**仅包含 Python 和 conda 包管理器。安装包的大小很小(大约几十 MB)**。用户需要根据需求手动安装其他所需的软件包。适用于希望从最小安装开始,自由选择所需软件包的用户。

  • Anaconda: 是一个大型的 Python 发行版本。安装包的大小较大(大约几百 MB)。预装了大量常用的 Python 科学计算和数据分析库,如 NumPy、SciPy、Pandas、Matplotlib 等。适用于希望获得一个预装环境方便上手的用户,尤其是针对数据科学和科学计算领域。

总的来说,Miniconda 为用户提供了一个最精简干净的 Python 环境 Anaconda 则提供了一个预装大量常用库的 Python 发行版**,适合快速开始数据科学和科学计算工作。
两者可以并存,可以从 Miniconda 开始安装所需软件包达到类似 Anaconda 环境的效果。

Read more »
0%