币安K线数据获取与存储系统 项目概述本项目是一个高性能的加密货币K线数据获取和存储系统,专门设计用于从币安期货市场获取永续合约交易对的历史K线数据。系统采用多线程设计,实现了API请求的负载均衡、速率限制、故障转移和自动重试等机制,并使用SQLite数据库进行高效存储和查询。 !系统架构图 核心功能 数据获取:从币安API获取永续合约K线数据 数据存储:使用SQLite数据库存储K线数据 内存缓存:使用内存缓存最近的数据 2025-04-02
MIT_6.s081_Lab5_lazy page allocation Eliminate allocation from sbrk()我们先来看看这个图: 代码段不必多说,唯一要注意的点就是fork()函数调用的时候不会去复制程序段,而是通过映射让父子进程共享。我们知道,sbrk()分配物理内存并将其映射到进程的虚拟地址空间,内核为大型请求分配和映射内存可能需要很长时间。 本实验你的任务是修改 sys_sbrk()使得其只增加/减少进程地址空间大小,而不真正地分配 2023-02-21 操作系统 MIT_s.081_Lab
MIT_6.s081_Lab1:Xv6 and Unix utilities 在这个实验中要实现几个用户级别的应用程序,其对应的系统调用在kernel中都已经被实现好了。 sleep本实验要为 xv6 实现 UNIX 程序 sleep; 您的睡眠应暂停用户指定的滴答数。 滴答是 xv6 内核定义的时间概念,即来自定时器芯片的两次中断之间的时间。 我们检查参数,如果出现不是数字的参数就exit(-1),否则进行sleep。代码如下所示: 1234567891011121314 2022-12-12 操作系统 MIT_s.081_Lab
CPU使用率过高的问题 上次某公司面试官问了我一个实际生产问题,CPU使用率达到100%怎么办,如何排查和如何解决。 $CPU使用率=1-空闲时间/总CPU时间$,我们将空闲时间称为idle,而$CPU时间=用户态CPU时间+低优先级CPU时间+内核态CPU时间+等待I/O的CPU时间+处理硬中断的CPU时间+处理软中断的CPU时间+steal时间$。 首先,我们可以使用top命令获取CPU和内存的使用情况,定位到CPU 2022-07-09
记一次manjaro OS恢复 我的PC前段时间短路了,更换主板之后重新启动电脑没有manjaro OS和Windows的启动项选择界面了,而是直接进入Winows,查看BOIS之后发现只有一个Winows启动项,遂开始恢复。 首先我发现只有一个Winows启动项,于是直接在Winows下管理员cmd中输入如下命令增加启动项: 1$bcdedit /set "{bootmgr}" path 2022-05-29
CMU_15-445_PROJECT#3 TASK #1 - SYSTEM CATALOG在这个任务中,我们会修改rc/include/catalog/catalog.h以允许 DBMS 将新表添加到数据库并使用名称或内部对象标识符 ( table_oid_t) 检索它们。 我们在最新的BusTub中可以看到catalog的实现,但是这个版本只能实现通过6个测试, 先来看看TableInfo的结构体: 123456789101112131 2022-05-16 数据库 CMU_15-455
Golang与IO多路复用 selectGolang的select关键字,用到了多路复用的概念,当然不是IO多路复用,因为没有涉及到输入输出。先看看下面例子: 1234567891011121314151617181920212223package mainimport ( "fmt" "sync")func main() { c1:=make(chan int,1) var 2022-04-03
Golang_包解析 Go map底层实现Go语言的map的底层实现基于Hash散列,Hash散列是一种著名的广义上的算法,它能将任意长度的数据映射到有限的值域当中。在实际工程中输入数据范围是无限的,而输出值域范围是有限的,因此必然存在不同的输入数据经过映射后得到相同的输出值,这种现象称为hash冲突,go底层通过链表解决hash冲突。值得注意的是:==Java1.8中使用平衡树来优化局部链表过长的性能问题。== 使用 2022-03-20