![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
理解性笔记
文章平均质量分 91
RzBu11d023r
这个作者很懒,什么都没留下…
展开
-
深度学习知识速成 I 深度学习工具链名词解释 深度学习原理
简单的想法是再倒着做一次 RNN,但是实际不行,因为我们希望一致的结果,所以实际我们需要做一些改善,其实有正的,也就可以有反的。预训练是指预先训练的一个模型或者指预先训练模型的过程,微调是指将预训练过的模型作用于自己的数据集,并参数适应自己数据集的过程。CNN 除了用于分类,还有图像生成中的风格迁移、滤镜化等也很有效,这种由原图生成近似图像的时候,CNN 本身卷积生成结果的过程其实可以认为是一种滤波,只要参数够多,网络够大,一个 CNN 看作一种滤波器就能理解了。还剩下的内容有目标检测的 Yolo。原创 2022-12-30 17:49:36 · 1691 阅读 · 1 评论 -
A记录 CNAME记录是什么 | DNS 查询的过程 | DNS 根服务器是什么 | 配置域名 CNAME 原理
全球共有 13 个根服务器, 然后近到本地 Isp 会配置多个缓存服务器(DHCP分配的 dns 就是 isp 提供的缓存服务器).终端设备进行 DNS 查询的时候, 首先是本机缓存,然后是 host文件原创 2022-10-29 17:40:15 · 934 阅读 · 0 评论 -
负载均衡一致性哈希算法实现 | nginx 负载均衡一致性哈希源码分析 | ngx_http_upstream_consistent_hash_module 源码分析
理解七层反向代理的负载均衡 Nginx 中使用的的一致性哈希算法。开头只是讲一些没用的东西,后面主要是分析 Nginx 的 O(1) 时间复杂度的一致性哈希负载均衡的模块源代码实现,顺便了解一下 nginx 模块开发(参考Development guide (nginx.org) 中的 load balancing 部分)的大致样子。原创 2022-02-23 02:57:05 · 1921 阅读 · 0 评论 -
什么是高并发高可用一致性?| 现代网站架构发展 | C 语言实现布隆过滤器
Lab: Bloom Filter提要这是一个简单的数小时可以完成的 C 语言学习编程练习,读者将学习编写一个布隆过滤器 (Bloom Filter), 谁是当前网络应用中广泛应用的一环。本文假定读者是对网络编程零基础的。参与者应当具备良好的 C 语言编程基本知识,包括但不仅限于以下知识点:基本的编程(分支循环等)整数数据类型位运算结构体指针堆上内存分配 (malloc 和 free)以下将提供足够的必要前置知识(不够清楚的地方可以在网络进行信息检索)关于布隆过滤器帮助完成练习。本文原创 2021-10-16 20:53:15 · 351 阅读 · 2 评论 -
为什么 Redis 采用单线程还那么快?
本来在总结并发 B+ 树中的死锁问题,看到笔记里面写着 redis 不用做并发死锁活锁那些东西的处理,于是理解一下这一点。CPU 速度的定量数据主要根据 jeff dean 10年前的经典文件:Latency Numbers Every Programmer Should Knowredis 为什么单线程跳表redis 是单线程的,采用 IO multiplexing,因为他是内存数据库,根本不需要 CPU 运算做瓶颈,只要内存够大,本来内存速度就 10GB/s 左右。redis 采用 R...原创 2021-12-23 12:15:44 · 820 阅读 · 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 · 1160 阅读 · 0 评论 -
C++20 coroutine 探索III: 异步编程,Task<T> 编写,boost asio 协程分析,C# async / await, cppcoro 源码分析
经过了前面对 coroutine 的反复学习,现在尝试写一些封装好的协程工具(reinventing the wheel)。本文先从最Promise 异步编程模型的最基本的 Task<T> 入手.异步编程Futures and promises - Wikipedia异步的关键点是真正的无线程异步必须要 all the way down 到 O/S system call 层面甚至到硬件层面的异步支持才能实现 (对于 Linux 的驱动模型, 做 top half 工作的 softirq原创 2021-11-23 21:37:51 · 2617 阅读 · 6 评论 -
Linux 高性能服务器开发笔记:Reactor 模型定时器 | 网络编程定时器
本文主要根据游双书本 Linux 高性能服务器开发 学习分析 linux 网络编程常用到的定时器模型,配备详细理解和分析,同时分析了 Linux 内核中定时器的低精度时间轮和高精度定时器实现思路还有 了解 kafka 的时间轮,提供必要的资料进一步理解。sigalarm 方面讲解通过定时器实现心跳包的原理。定时器基础socket 选项和 I/O 复用 timeout首先第一个,这个正如前面讲的要用 setsockopt 而且不同的东西要用不同的结构体传进去,还要传一个 len然..原创 2021-11-15 17:55:04 · 1279 阅读 · 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 · 835 阅读 · 0 评论 -
多人网络游戏服务器开发基础学习笔记 I:基本知识 | 游戏设计模式 | 网游服务器层次结构 | 游戏对象序列化 | 游戏 RPC 框架 | 帧同步和状态同步
今天继续开新坑,尽管过了很多 Unix 套接字编程的坑,但是实际还是有很多不同场景和性能的需求,以及最服务器架构的内容也就接触过 preforking 和 master 带 worker 而已。所以有必要持续阅读一些内容。本文的笔记主干是基于书本的内容的个人理解,然后补充很多网络上的资料作为额外的内容希望能把概念和方法都讲明白,然后会收集一些 realworld 案例加深理解。主要跟的书本是 Joshua Glazer 的 multiplayer game 网络多人游戏架构与编程,这本书也是好评如.原创 2021-11-11 21:51:25 · 7371 阅读 · 0 评论 -
多人网络游戏服务器开发基础学习笔记 II: 帧同步 | 游戏客户端预测原理分析 | FPS 游戏状态同步
这篇是对书本 网络多人游戏架构与编程 的学习第二篇,内容还是以基础为主。第一篇主要是讲解了网络多人游戏的一些最基础的知识。同时因为一些点书本内容太简略,所以参照学习了 GDC 2017 守望先锋对 ECS 架构涉及和网络同步的视频分享结合讲解加深理解。尝试提供所有必要基础知识理解游戏客户端预测(但是只是基础角度的分析,有需要深入学习的时候直接看视频)。对于守望先锋 ECS 架构部分这里不涉及,那部分内容属于 gameplay 部分,可以看云风大佬的分析。GDC 的视频连接下文会给出。对于游戏中的各原创 2021-11-14 17:46:05 · 10808 阅读 · 0 评论 -
游戏开发基础笔记:逻辑帧和物理帧辨析 | Gameloop | 游戏循环
显卡帧,物理帧(渲染帧),逻辑帧(轮)辨析首先显卡帧是指显卡接口输出的采样时间,这个理论采样时间无限短?但是由于物理信道线材的限制,传输是带通/低通信道,所以实际受限于接口和线材的带宽,所以才有 30帧 60 帧的限制,这个实现是通过采样 frame buffer 然后给绘制出来。而且由于并不能并行传输(指并行16亿bit)所以显示器必须用扫描的方法显示像素。 逻辑帧是每秒进行物体对象状态更新的计算次数,他决定了世界时间的运行推进。 物理帧是显卡渲染 pipeline 进行渲染的帧数,基本最简单不影原创 2021-11-14 00:16:56 · 9768 阅读 · 1 评论 -
基础服务器 IO 模型 Proactor 模型 Reactor 模型 IO 多路复用 异步 IO 模型 Linux 服务器开发 网络编程服务器模型
本文主要记录服务器的 IO 模型的类型(从多路复用,异步 IO 讲到 Proactor Reactor 模型),包括 Real World nginx 和 apache ,kafka 等分析,配备自洽的所有知识点方便自己复习。先把 APUE 第八章进程控制过一遍吧Linux 进程的控制启动与复制首先是他说的 swapper pid==0 的进程,就如在 xv6 里面的那样,init 做的就是 wait 到子进程(shell)退出然后就退出而已。scheduler 的部分是另外的,由于他的..原创 2021-11-11 22:47:12 · 2042 阅读 · 0 评论 -
Games101 作业草稿 II:MSAA 和 SSAA 辨析
这篇文章是2021年10月19日 搞了大半天,其实最后还是有些小细节的问题没理解。games101 到目前除了之前的矩阵变换花了点时间复习线性代数的变换,还没有感觉要做笔记的。但是这个 MSAA 和 SSAA 课程描述太简略了导致写的程序很多是错的和一些理解都是 missing something 的,网上的很多 sol 也是这样,所以还是要 mark 一下。 (关键是很多不同的资料对这后者的定义都不一致)。深入剖析MSAA - 风恋残雪 - 博客园 (cnblogs.com)一开始是...原创 2021-11-11 22:23:13 · 2018 阅读 · 2 评论 -
基本网站架构 网络编程基础
整理一些网络编程的基础知识。摘录一下方便理理解。基本服务器就是一个服务器,蕴含数据库了。数据库分离web server 和 database server,client 请求 web server web server 请求 database server 完成 OLTP (online transaction processing,增删改查等事务)或者 OLAP (online analytical ,分析处理)活。web server 动静分离动态请求比如 http 网页的静...原创 2021-10-17 21:07:29 · 95 阅读 · 0 评论 -
GC垃圾回收、RAII实现概述 自己动手写垃圾回收器 C语言垃圾回收器 自己写GC
课本是: 日本人写的 垃圾回收算法与思想, 可能要配套看一些论文, GC 是因为 6.s081 vm 的用法里提了一下, DUNE 应用里面也提到了 user level 应用 s 模式指令来完成 GC 的一个例子.常见 GC 总结 算法 堆利用 复杂度 默认下 STW 可改进缺点 改进 其他优缺点 保守与精确 Mark原创 2021-09-01 20:45:03 · 1025 阅读 · 0 评论 -
尾递归优化 快速排序优化 CPS 变换 call/cc setjmp/longjmp coroutine 协程 栈编程和控制流 讲解
尾递归优化 快排递归优化 CPS 变换 call/cc setjmp/longjmp coroutine 大杂烩递归与栈首先理解栈程序模型,其函数调用是依据压栈进行的,这里给一副图加深印象:函数调用最后返回的时候 callee 需要从栈恢复 callee save 寄存器然后返回到 caller,caller 再恢复 caller save 寄存器,这一步就是占用内存的消费。尾递归我们是否能够把递归变成 O(1) 空间的呢?实际上是可以的,但是这对程序有条件,就是尾递归。下面来看几个程序:原创 2021-08-25 05:14:14 · 921 阅读 · 0 评论 -
TCP拥塞控制及其缺点 与 基于UDP应用层自定义可靠有连接协议
本文前半部分为计算机网络课程最后一节课学习内容的课堂笔记,后半部分为结合最近碰巧学习了解应用层网络协议时了解到的一些内容总结到此处。阅读本文需要了解 TCP 协议与 UDP 协议的区别,了解网络五层模型,复习一般 TCP congestion control 流程(本文着重解释回顾)。阅读完后将会了解TCP 协议的缺点不足以及一些用户态自定义协议的动机。Congestion Control 和为什么简单的算法能工作拥塞发生的层次:需要区分 transport layer 的 end ...原创 2021-08-19 01:31:40 · 1101 阅读 · 0 评论 -
6.S081 lab: networking e1000 网卡驱动 附 Linux 网卡驱动编写分析
第二篇--PCI设备解析 - o云淡风轻o - 博客园 (cnblogs.com)Writing Network Device Drivers for Linux LG #156 (linuxgazette.net)26.Linux-网卡驱动介绍以及制作虚拟网卡驱动(详解) - 诺谦 - 博客园 (cnblogs.com)Linux网络设备驱动 _驱动模型 - Abnor - 博客园 (cnblogs.com)参考书籍是 Linux Kernel Development 3rd...原创 2021-08-09 01:30:32 · 2250 阅读 · 1 评论 -
从自旋锁、睡眠锁、读写锁到 Linux RCU 机制讲解
总结一下 O/S 课程里面和锁相关的内容. 本文是 6.S081 课程的相关内容总结回顾, 前置知识是基本的操作系统知识以及部分组成原理知识. 举例如: 线程与并发的概念, 中断与管态用户态概念, 以及基本的并发编程锁模型如读写锁等和部分数据结构. 对于 shared data structure, 需要保证读写的 critical section 时具备 consistency, 特别是读的适合, 不希望读到一个不完整的数据或者数据结构的不完整的结构. 比如一个链表在多个线程的读写过...原创 2021-08-07 04:24:07 · 4752 阅读 · 0 评论 -
并发增量复制垃圾回收 (Concurrent and Incremental Copying GC) 和虚拟内存应用
本文是对 6.S081 课程中 VM applications 论文阅读中对虚拟内存能应用于Garbage Collection 的笔记。主要记录垃圾回收的一些算法和解释论文的应用点。内容是从最简单的 Copying GC (DFS) 到 cheney 的 Copying GC,然后讲解 Baker‘s real time incremental GC 到一个基于 Baker 的 Concurrent GC最后分析VM 怎么赋能 Concurrent GC。本文可以作为增强对虚拟内存的理解和进...原创 2021-07-10 01:03:13 · 1004 阅读 · 0 评论 -
Karplus-Strong Algorithm 弦乐器模拟 吉他弦乐器发声原理 泛音 乐理概述
本文是记录 CS61B HW1 学习中内容。 这段时间在学乐理,信号与系统还有模拟电子,遇到这个 HW 现在杂糅一下记一下思路方便之后回顾。 这个 Hw 在做一个 Physical Modelling Synthesis 的过程,主要是用这个 Karplus-Strong 算法来模拟打鼓和弦乐器的声音(这个应用也许可以做电钢和合成器?不过为什么不用录音),我粗略读了一下论文,主要是先给出了模拟方法,构建了系统框图,然后在复频域分析为什么简单的算法能得到好效果。我这里为了能方便理解...原创 2021-07-08 23:57:01 · 2004 阅读 · 0 评论