0%

1 几个对象

  • 字符串: r#"{ "name": "John Doe"}"#
  • serde_json::Value: json内部结构
  • struct Person{name: String}: rust内部结构
阅读全文 »

1 字符串

参考: https://fasterthanli.me/articles/working-with-strings-in-rust

UTF8字符表和UTF8编码是两个东西, 字符表是一个,也叫 Unicode; 编码方式有很多种,UTF-8,UTF-16等等,目前通用的编码方式是UTF8, 这个是变长字节,1个unicode字符可以编码成1-4字节的长度.
而UTF-32每个字符都是4字节表示,这样可以跟字符表一一对应,缺点就是浪费空间。

rust的 String 都是 utf-8 编码的,影响就是跟c++的 char 不等价, 不能理所当然的取长度.

阅读全文 »

原文: https://blog.m-ou.se/super-let/

Rust中临时变量的生命周期相当复杂,但是个容易被忽略的话题.通常Rust会把临时变量维持足够长的时间,不需要我们关心;但也很多情况并不是我们期望的.

这篇文章中,我们会(重新)了解临时变量生命周期的规则,学习几种临时变量生命周期延长的情况,并探索一种新的语言想法,super let,让我们能对这些情况有更多控制.

阅读全文 »

1. 需要下载 rustuprustc

rustup 是 rust 的工具链管理工具,方便切换rustc的版本,可以从这里下载离线版本;

rustc 本体需要下载 standalone 版本,从这里下载;

阅读全文 »

时间分类

  1. real time 和 处理器时间(process time)
    从某个点测量的真实时间,比如从1970年开始的,或者从进程启动时候的点开始;
    进程使用CPU的时间,分用户时间(运行在用户态)和系统时间(运行在内核态)
  2. 硬件时间(hardware clock)
    一个带电池的硬件,内核在启动时候从这里初始化开始时间
  3. 软件时间(software clock, HZ, jiffy)
    大多数系统调用设置超时和测量时间的精度取决于HZ,是内核维护的一个最小精度,HZ取决于操作系统和硬件,最早是100,后来有100,250,300,1000
  4. 高精度定时器
    在 2.6.21 之前,定时器的精度取决于 jiffy; 从这个版本开始, linux支持使用高精度定时器硬件来设置定时器
  5. Epoch
    1970-01-01 00:00:00 +0000 (UTC) 开始的秒数
  6. Broken-down time
    struct tm 描述时间的各个部分,年月日分开
阅读全文 »

#lvm #磁盘 #xfs #扩容

lvm基本概念

磁盘: 磁盘本身没做任何文件系统
pv: 物理卷,每个磁盘分区可以做1个物理卷
vg: 卷组,几个物理卷合并成1个卷则,可以认为是1个虚拟磁盘,1个卷组可以包含几个物理磁盘
lv: 逻辑卷,在卷组上创建的单个逻辑磁盘,可以认为是1个虚拟分区

阅读全文 »