工程师文化、工匠精神和赛博丁真

最近何同学和稚晖君都发视频了,巧合的是他们做的项目都是关于键盘的魔改,不过人比人还是气死人嗷。 何同学本质上走的还是网红甚至说是饭圈路线,并没...

2022 Aug 15 · 3 min · vaaandark

说说链表

最近看到了一些关于侵入式和非侵入式链表的讨论,决定研究一下它们两个。 侵入式和非侵入式链表的区别 这里的侵入是相对于链表的指针域来说,所以最主要...

2022 Aug 14 · 2 min · vaaandark

OpenMP进阶

继续学习 OpenMP 的使用,尤其是一些较新版本。 OpenMP 4.0 Controlling OpenMP thread Affinity 因为很多硬件如今是 NUMA 结构,分配线程的位置可以很大程度上影响性能。 与核绑定有关的 OpenMP 结构 proc_bind (master |...

2022 Aug 02 · 4 min · vaaandark

OpenMP入门

写 OpenMP 的时候总是感觉怪怪的,不知道什么时候该用什么,所以最近系统化地看一遍 OpenMP 的使用,主体为 OpenMP 2.0 和 3.0。 What is OpenMP? OpenMP Model 每个线程都有可以访问全局的共...

2022 Jul 29 · 3 min · vaaandark

七月随笔

突然发现自己从高二以来基本没有读过“闲书”,意识到这可能正是现在诸多烦恼的原因之一吧…… 其实从初中以来,我所阅读书籍的文学性都是在下降的,我...

2022 Jul 28 · 2 min · vaaandark

Lua Coroutine

Lua 的一大特色就是协程的使用,在解释型语言中,如果不考虑嵌入到较为低级的语言(如 C 语言)中,就只需要操作调用栈并保存好上下文状态即可。但是 Lua 并...

2022 May 13 · 6 min · vaaandark

Lua Table

之前学习 Lua 的时候就对它的 Table 很感兴趣,最近在看 Lua 解释器的源码,因此就想研究一下具体是怎么实现这个 Lua 之中最为重要的数据结构的。 Lua Table 简介 在 Lua 语言之...

2022 May 11 · 7 min · vaaandark

C语言异常处理

C 语言没有原生支持异常处理,但是可以使用setjmp和longjmp函数实现类似try ... except的功能。 本文主要参考: C Interfaces and Implementation Implementing exceptions in C setjmp.h...

2022 May 03 · 4 min · vaaandark

Rust闭包

Rust 支持函数式编程,因此高阶函数、闭包等特性都不可或缺。 本文主要参考了 Rust Course 和 Rust 标准库文档。 什么是闭包 闭包是在支持头等函数的编程语言中实现词法绑...

2022 Apr 26 · 4 min · vaaandark

Rust迭代器

最近一直在学习 Rust 语言,深感它的学习曲线很陡峭,因此会写几篇博客记录一下学习进度。 本文主要参考了 Rust Course 和 Rust 标准库文档。 什么是迭代器 迭代器(ite...

2022 Apr 25 · 4 min · vaaandark