等疾风

正在捣鼓协程

等疾风

本文意在阐述 C++ 智能指针的实现原理,应用场景和潜在的坑。

Read more »

协程(coroutine)是能够暂停和恢复的函数。

协程是线程阻塞造成性能下降的最佳解决方案,尤其是应用在静态线程池中。

Read more »

参考资料:

获得 GPU 加速的关键

总结

必要条件

  1. 数据传输比例较小
  2. 核函数的算术强度较高
  3. 核函数中定义的线程数目较多

提高性能的技巧

  1. 减少主机与设备之间的数据传输
  2. 提高核函数的算术强度
  3. 增大核函数的并行规模
Read more »

本文始于 2018/6/27,用于汇聚关于 C++ 的实用知识和碰到的坑,温故而知新。

2022/1/2 【更改】标题改为《C++ 标准笔记》
2022/1/2 【新增】StandardLayout
2022/1/2 【新增】bit field

更新预告:

  1. CRTP 原理,目的和应用
  2. CRTP 应用之表达式模板
Read more »

不同语言/操作系统/硬件的线程实现还不一样,因此学一个比较主流的多线程库还是挺重要的。
C++ STL的线程支持库就是一个好例子。在这之前,最好先复习一下基础知识。

基础知识

  • 不变量(invariants) 是指对数据结构的断言
    • 例:某种帐本,任意前缀和不为负数。
    • 例:链表某个节点的后继的前驱是自己。
    • 众所周知,不良的并发编程会破坏不变量!
    • 破坏不变量的根源是写操作。
      Read more »

更新Hexo

1
2
3
4
5
6
7
8
9
10
11
12
cnpm install -g cnpm                 # 升级 npm
cnpm cache clean -f # 清除 npm 缓存

# 更新 package.json 中的 hexo 及个插件版本
cnpm install -g npm-check # 检查之前安装的插件,都有哪些是可以升级的
cnpm install -g npm-upgrade # 升级系统中的插件
npm-check
npm-upgrade

cnpm update

hexo -v

更新NexT

  1. 重命名原有的主题文件(夹)
  2. npm install hexo-theme-next@latest
  3. diff配合肉眼更新配置
  4. 参考官方文档

前置知识

自动机的五个部分

  1. alpha 字符集
  2. state 状态集合。另让$null$表示不存在的状态或转移
  3. init 初始状态
  4. end 结束状态集合
  5. trans 状态转移函数:令$trans(s, str)$表示在状态$s$时读入字符串$str$后,所达到的状态。$trans$应具有传递性。
Read more »

更新:现在都用核心模式了,推荐LearnOpenGL,不推荐往下看啦。


OpenGL

OpenGL系统由独立于设备的函数集(核心库)、实用库(GLU)和实用工具包(GLUT)三部分组成。

Read more »