![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
笔记
文章平均质量分 91
RzBu11d023r
这个作者很懒,什么都没留下…
展开
-
epoll LT ET 区别 | Nginx epoll 原理 listend 用 LT
最近学 muduo 和 nginx 写网络库,总结一下 epoll 上遇到的一些问题和学习的笔记,主要是对 LT、ET 和平滑升级里的一些点理解一下。原创 2022-01-30 00:59:11 · 2821 阅读 · 0 评论 -
图形学基础笔记III:图形管线中的多边形裁剪算法、Sutherland-Hodgman、Guard Band Clipping
这个主要讲的是viewport 里的。从 frustum (根据 fov 视场角 和 aspect ratio 纵横比决定 lrbt,front、near 是由摄像机距离和世界大小决定的)到 viewport 之后,能够看到的就只有投影后的 cuboid 在 viewport 里面的东西了。问题是这个 clipping 是在 CPU 还是 GPU?实际有多个阶段,从 culling,CPU clipping 到 GPU clipping 和GPU rasterization。...原创 2022-01-03 00:01:27 · 1431 阅读 · 0 评论 -
图形学基础笔记II:多边形光栅化算法和显卡三角形光栅算法
为什么三角形就够了实际对于 3D 来说肯定全是基于三角形的 geometry - OpenGL: Is it more efficient to use GL_QUADS or GL_TRIANGLES? - Stack Overflow,显卡也全部用重心坐标和 AABB 来填充三角形的。三角形线框模式和非三角形线框模式(GUI、CAD),也很容易实现,使用 bresenham 中点算法就行了。点就更简单了,如果没有涉及 Anti A 直接取整写显存就行了。整理一下就是说:线框模...原创 2022-01-02 18:17:45 · 1596 阅读 · 0 评论 -
图形学基础笔记I:直线和圆的光栅算法、中点线算法、中点圆算法
实际现代显卡支持的图元就只有点、线、三角形。这是基于这样的事实:实际对于 3D 来说肯定全是基于三角形的 geometry - OpenGL: Is it more efficient to use GL_QUADS or GL_TRIANGLES? - Stack Overflow,显卡也全部用重心坐标和 AABB 来填充三角形的。三角形线框模式和非三角形线框模式(GUI、CAD),也很容易实现,使用 bresenham 中点算法就行了。点就更简单了,如果没有涉及抗锯齿直接取整写显存就行了。.原创 2022-01-02 18:12:27 · 530 阅读 · 0 评论 -
OpenGL 学习笔记III: 图形管线、三角形、shader 流水线
跟 LearnOpenGl 也逐渐走到写 shader 渲染渐变三角形、四边形的地步了,现在总结一下整个图形管线的流程,可编程管线中各个 shader 的工作和用途。以及 shader 的本身的用途。图形管线整体视角图片是我随手截图拼一下然后胡乱注解的。里面有些地方描写比较模糊或者不太正确,下面应该会解释。补充一下 rtr4 里面新增的一个 tessellation 曲面细分OpenGL 与显卡、软件算法与硬件算法、三角形OpenGL 图元:GL_POINTS、GL_...原创 2021-12-30 22:37:26 · 628 阅读 · 0 评论 -
数据库系统期末复习III: 并发控制基础、多粒度两阶段封锁 2PL、幻读解决方案
并发控制的重点是三个级别的封锁,2PL 以及 MVCC。本文属于第一部分,复习除了 MVCC 之外的。基本操作Commit:一旦 commit 了,就无法再 Rollback。 Rollback:再 begin transaction 到 commit 之间使用 Abort:和 rollback 是同一个术语。 一个 txn 的生命周期是从 begin txn 开始,到 commit/abort(rollback) 结束。Conflict Searializable 冲突的依赖:必...原创 2021-12-30 15:20:04 · 864 阅读 · 0 评论 -
OpenGL 学习笔记 II:初始化 API,第一个黑窗,游戏循环和帧率,OpenGL 默认垂直同步,glfw 帧率
前情提要:上一篇: OpenGL 学习笔记 I:OpenGL glew glad glfw glut 的关系,OpenGL 状态机,现代操作系统的窗口管理器,OpenGL 窗口和上下文 OpenGL context_我说我谁呢 --CSDN博客 讲解了 OpenGL glew glad glfw glut 的关系,一笔带过 OpenGL 状态机,几句话讲解了现代操作系统的窗口管理器,理解了 OpenGL 窗口和上下文 OpenGL context 的概念。重新备注一下,这系列笔记可以认为是基于...原创 2021-12-30 14:50:55 · 3421 阅读 · 0 评论 -
OpenGL 学习笔记 I:OpenGL glew glad glfw glut 的关系,OpenGL 状态机,现代操作系统的窗口管理器,OpenGL 窗口和上下文 OpenGL context
本来想边速成 OpenGL 然后顺带复习图形学除了光线追踪部分来准备考试,但是疫情考试推迟了,所以就不速成了,花点时间防止我啥也没学会。首先是一开始配环境遇到的各种问题,之前第一次学 OpenGL 照猫画虎复制老师给的源码画了line ,strip 多边形等的图形,实际根本没明白 OpenGL 到底是这么设计的,还有 glew glad glfw glut 这些东西也很多一笔带过要么说是解决一些 OpenGL 的附带问题,加载函数和绑定窗口。我没找到很具体的解释,所以还是自己亲自部署一下了。复习编...原创 2021-12-28 16:10:37 · 1015 阅读 · 0 评论 -
数据库系统期末复习II: 查询算法实现 | 聚合 | 排序 | 连接
前情提要,上回数据库系统期末复习I:数据库存储与索引技术_我说我谁呢 --CSDN博客 复习完了DBMS存储模型的内模式的实现,包括怎么存储 records,不同的索引实现的数据结构算法以及不同的适用情况。本文聚焦数据库系统中的查询算法。由于 point query 太简单,在上一篇里面就讲完了,这里主要讲解的是 join,aggregation,order by 的实现算法。位置(数据库系统基本构成)Disk Manager:最底层是负责和 OS 打交道的 Disk Manager,但...原创 2021-12-23 17:36:08 · 909 阅读 · 0 评论 -
CMU 15-445 Project 2 B+ Tree 技术总结
首先是教科书的伪代码,基本都要按这个来写,不然写不出来的原创 2021-12-23 09:17:40 · 1778 阅读 · 3 评论 -
数据库系统期末复习I:数据库存储与索引技术
主要是期末复习,结合了学关系代数的课程加上重新整理了一下之前的 midterm 总结,重新聚焦一些要点,添加了详细的解释和重新理解知识点。 整理了一下方便自己复习。DBMS 模式结构外模式是模式的访问权限控制视图 模式是库表关系 内模式包括物理存储:heap file,以什么做 clustering,索引类型,压缩与否,加密数据等Relational model 与 SQL关系代数和关系演算:区别是,一个通过算子(函数操作)来表述,关系演算是通过逻辑谓词。对于编程来说,用 rel...原创 2021-12-22 21:23:58 · 2018 阅读 · 0 评论 -
stl std::sort 内省排序 sort 函数源码分析 排序算法比较 排序算法性能 排序算法时空复杂度分析 为什么快排最快
算法课程第二次上机排序算法性能比较上机报告题目:实现插入排序(Insertion Sort,IS),自顶向下归并排序(Top-down Mergesort,TDM),自底向上归并排序(Bottom-up Mergesort,BUM),随机快速排序(Random Quicksort,RQ),Dijkstra 3-路划分快速排序(Quicksort with Dijkstra 3-way Partition,QD3P)。在你的计算机上针对不同输入规模数据进行实验,对比上述排序算法的时间性能。要求对于每次原创 2022-01-11 21:58:26 · 1164 阅读 · 0 评论 -
C++ 20 std::chrono 库使用 | std::chrono::year_month_day |std::chrono::hh_mm_ss 使用
mark 一下 C++20 怎么获取日期和时间(cppreference 对 year_month_day 的没有例子,我一开始没搞清楚原创 2021-11-29 20:19:32 · 2461 阅读 · 0 评论 -
C++20 coroutine 探索II: coroutine_traits & await_transform 的用法,boost asio 中 coroutine 的用法
经过之前对 coroutine 的思路整理(额,实际并完成完整的一篇),我基本明白了一个事实(这个文章比我潦草本地笔记整理得好所以复习概念就看他了:C++20 协程初探 | Netcan on Programming, 不过主要的调用流程伪代码(约等于编译器生成代码)参考还是 co_await 流程 和 协程调用流程,然后实际的细节指定就是看 cppreference Coroutines (C++20) - cppreference.com就行了)。基本概念Promise Type 实际是...原创 2021-11-22 13:43:45 · 2198 阅读 · 0 评论 -
C++20 coroutine 探索I:co_await 原理 | 使用 C++ 协程写 python generator
时隔三个月,才回到当时说的学协程的坑,中间学了各种各样的东西,起码对现代C++ 有些许了解了。尾递归优化 快速排序优化 CPS 变换 call/cc setjmp/longjmp coroutine 协程 栈编程和控制流 讲解_我说我谁呢 --CSDN博客看这个文章之前可以先复习一下函数式编程里面的 call/cc 的概念,因为 C++20 的 stackless coroutine 就是用类似 call/cc 的手法实现的。主要参考资料参照Coroutines (C++20) - cppref..原创 2021-11-20 16:52:20 · 3971 阅读 · 0 评论 -
leetcode 96 不同的二叉搜索树: 同构问题分析 卡特兰数 Catalan Number
做动态规划的时候看到这道题力扣 96 不同的二叉搜索树然后就想起了之前学的一个 Catalan Number 的知识点。这里复习一下。组合差形式定义 defined in form of difference of combinatorial numbers特定01序列问题考虑生成01序列, 其中对于第i位, I in range(len(seq)), 其前面的1必须多于等于0, 且最终count(0)==count(1)此要求可以进行一个几何建模: 指定右上为1, 左下为0...原创 2021-11-15 09:40:39 · 837 阅读 · 0 评论 -
游戏开发基础笔记:逻辑帧和物理帧辨析 | Gameloop | 游戏循环
显卡帧,物理帧(渲染帧),逻辑帧(轮)辨析首先显卡帧是指显卡接口输出的采样时间,这个理论采样时间无限短?但是由于物理信道线材的限制,传输是带通/低通信道,所以实际受限于接口和线材的带宽,所以才有 30帧 60 帧的限制,这个实现是通过采样 frame buffer 然后给绘制出来。而且由于并不能并行传输(指并行16亿bit)所以显示器必须用扫描的方法显示像素。 逻辑帧是每秒进行物体对象状态更新的计算次数,他决定了世界时间的运行推进。 物理帧是显卡渲染 pipeline 进行渲染的帧数,基本最简单不影原创 2021-11-14 00:16:56 · 9793 阅读 · 1 评论 -
动态规划基础机械解题套路 I: 子集和连续序列
本文讲解的力扣习题(大体分为两类问题):1137. 第 N 个泰波那契数 斐波那契 198. 打家劫舍 70. 爬楼梯 746. 使用最小花费爬楼梯 740. 删除并获得点数 121. 买卖股票的最佳时机 53. 最大子序和 152. 乘积最大子数组 1567. 乘积为正数的最长子数组长度 122. 买卖股票的最佳时机 II123. 买卖股票的最佳时机 III188. 买卖股票的最佳时机 IV基于 MIT CLRS Spring 2021 讲 DP 前两节视频的分类,总结最基本的几...原创 2021-11-04 20:01:29 · 302 阅读 · 0 评论 -
UNP 学习笔记 2:socket 编程简介
单个地址结构体一个 TCP 套接字是用一对 ip:port 的四元组构成的,我们使用结构体保存一个 ip:port, 这个结构体是 sockaddr_in 和 sockaddr_in6. 对于数据链路层的套接字,这个结构体是 sockaddr_dl, 地址则是和 (ip:port) 相呼应的链路层地址。 我们为了支援所有结构体,提供通用的 connect 和 socket 函数调用,历史由于没有 void* (前 ANSI C 时期),所有的函数调用都带有第三个参数,which is 用来传结...原创 2021-09-26 21:05:52 · 135 阅读 · 0 评论 -
UNP 学习笔记 2:协议概述与传输层对应 socket 函数行为
OS ,应用以及他们用的协议首先明确所有的 IP 层及以上都需要操作系统内核网络栈处理。所以底层 OS 实际接触到的层次是数据链路层。tcpdump 能实现的原理即字节访问数据链路层, 这里涉及 BSD packet filter 和 datalink provider interface 两种方法直接访问底层。 ICMP 是独立于 TCP,UDP,SCTP 的一个基于 IP 上的网际控制报文协议,ping 和 traceroute 都会用。这里 traceroute 实际是用发送没用的 UDP...原创 2021-09-26 15:25:06 · 277 阅读 · 0 评论 -
UNP 学习笔记 1:Socket 编程基础
学习一下 UNP,这里做一些笔记以及结合计网学习对一些点给出自己的理解,方便之后自己复习。资料是 UNPv13e 书本,UNP 课本源码。同时参考的还有 APUE 以及 linuxmanual。UNP ch1 简介daytime 客户端程序 socket 套接字,支持网络层到其更上层的各种连接。 其中 UNIX域 specify the network layer protocal such as x.25/ipv4/ipv6 etc. the type spe...原创 2021-09-26 10:10:13 · 257 阅读 · 0 评论