零拷贝
高速缓存PageCache 在内存中有一个分区用来缓存热点数据 有预读功能 读写速度比磁盘快 应用与内核态缓存区,如下文内核态缓存区 DMA技术 在进行I/O设备(如:磁盘)和内存进行数据传输时,由DMA负责数据搬运,而不需要CPU参与 传统文件传输 系统调用:read(file, tmp_buf, len)、write(socket, t...
高速缓存PageCache 在内存中有一个分区用来缓存热点数据 有预读功能 读写速度比磁盘快 应用与内核态缓存区,如下文内核态缓存区 DMA技术 在进行I/O设备(如:磁盘)和内存进行数据传输时,由DMA负责数据搬运,而不需要CPU参与 传统文件传输 系统调用:read(file, tmp_buf, len)、write(socket, t...
范式 1NF:原子性,列不可以再拆分。 2NF:1、表必须有主键。2、非主键列必须完全依赖主键,而不能只依赖主键的一部分。 例:订单明细表:【OrderDetail】(OrderID,ProductID,UnitPrice,Discount,Quantity,ProductName)。 因为我们知道在一个订单中...
是什么? Multiversion concurrency control (MCC or MVCC) 多版本并发控制(MCC 或 MVCC)是一种并发控制方法,通常被数据库管理系统用来提供对数据库的并发访问(select),并以编程语言来实现事务存储。 解决了什么? 不加锁的情况下解决了脏读、不可重复读和快照读下的幻读问题(幻读问题最终就是使用间隙锁解决) 如何实现...
解决无法识别导入包 解决 检查是否开启go mod 若开启了go mod,IDE的setting是否配置正确,需要删除gopath go mod tidy 重新go build即可 解决调整不正常 解决 可尝试删除.idea文件 删除IDE缓存 也可参考https://stackoverflow.com/questions/37282285/intelli...
1、同步、异步是相对于任务来说,即一个任务的处理,是否需要等待依赖任务的处理结果,才能继续向下执行;异步的消息通知采用回调的方式,而同步没有。 2、阻塞、非阻塞相对于线程而言,即线程在调用结果返回之前,是挂起,还是继续处理其他任务,得到调用结果返回通知后继续执行。 同步 一个任务的完成,需要等待所依赖任务的完成结果,才能继续向下执行。是一种可靠的任务序列 异步 一个任...
节点的度 节点有几个分叉 高度 自底向上,叶子节点的高度为1 树高logN 深度 自顶向下,根节点的深度为1 二叉树 定义: 任意节点的度不超过2 查找时间复杂度:logN,递归深度logN;最坏情况下N 查找空间复杂度:logN,递归使用的栈空间;最坏情况下是N 遍历时间复杂度:N,每个节点都遍...
包管理简史 GOPATH GOROOT:调用官方包,会从$GOROOT/src目录下寻找该包,一个栗子: GOPATH:一个项目一个GOPATH,go get第三方包时,会保存在$GOPATH/src目录下寻找包,一个栗子: 缺点: 没有依赖列表,只能一个一个go get 依赖代码根项目的代码混到$GOPATH/src vendor机制 ...
https://www.nowcoder.com/discuss/526897
下载pporf: |端点| debug=0| debug=1| debug=2| |/debug/pprof/goroutine | 二进制(pprof 分析) | 简要 Goroutine 堆栈 | 完整 Goroutine 堆栈 |/debug/pprof/heap | 二进制(pprof 分析) | 内存聚合统计 | 详细堆内存对象 |/debug/pprof/profile | 二进...
快速排序 思想:分治 1、选一个基准 2、头、尾指针遍历,小于基准在左边,大于基准在右边 3、递归基准的左边、右边 时间复杂度:最好情况每次递归都平分数组,一共需要递归logn次,每次需要n时间,复杂度为O(n*logn),最坏情况每次都把数组分成1和n-1,一共需要递归n次,每次需要n时间,总体复杂度为O(n^2)。平...