system optimize
计算、存储、网络、硬件,主要是在这四个维度 首先要有一个足够准的钟,因此个机房配几个带GPS和/或原子钟primary standard的NTP服务器。 但是应该在同一个局域网的服务器之间还是存在一定的时钟差,所以要想办法做补偿(时间戳补偿,time sync, 延迟补偿) 另外网络上的延迟可以分成两大类,第一类是物理层面规则的限制,第二个是惯性延迟。 第一类很好理解,传输速度,跟距...
计算、存储、网络、硬件,主要是在这四个维度 首先要有一个足够准的钟,因此个机房配几个带GPS和/或原子钟primary standard的NTP服务器。 但是应该在同一个局域网的服务器之间还是存在一定的时钟差,所以要想办法做补偿(时间戳补偿,time sync, 延迟补偿) 另外网络上的延迟可以分成两大类,第一类是物理层面规则的限制,第二个是惯性延迟。 第一类很好理解,传输速度,跟距...
Garbage Collection for Systems Programmers Fuzzing CDT: Finding, reproducing, and reporting bugs 内存使用高伴随异常高的磁盘读IO原因分析 内存使用量太高,导致系统内存不足,应用需要不断pagefault,pagecache读了又回收,从而导致磁盘读IO异常高。...
推荐一个项目做直接的阅读project,llm.c 1. cuda入门 NVIDIA现场形象展示CPU和GPU工作原理上的区别 1.1.1 入门路线 CUDA学习资料及路线图 环境配置,搭建cuda环境 1.1.2 相关的资料 GPU编程(CUDA) 代码 CUDA: From Correctness to Performance...
记录一下功能训练方面的书籍,以后有时间可以看看 1. 运动营养学 2016年中国国民膳食指南 健身营养全书 高级运动营养学 中国食物成分表第二版(用app,薄荷健康,没必要看) 然后深入的可以看 现代临床营养学。 中国营养科学全书。 2. 解剖与训练 功能解剖(图文并茂) 力量训练原理与实践 体育运动中的功能性训练(麦克博伊尔) ...
shared_ptr内部主要有两个点,第一个是contrl block,第二个是内部储存的类空间 ctrl block是在堆上创建的,内部会有一个atomic变量来做引用计数的增减, 因此,shared_ptr的copy其实是线程安全的,这也意味着修改指向内容的操作不是线程安全的。 这里谈到第二个点,为什么推荐使用make_shared,原因之一是RAII问题,new构造 + share...
UUID是”Universally Unique Identifier”的缩写,它是一个128位的值,全局唯一性是它的主要特性。UUID的主要目的是通过生成一个唯一的ID,使得在不需要中央协调机构的情况下,可以在分布式系统中区分和识别信息。 UUID的标准形式包含32个十六进制数字,分为五个组,形式为8-4-4-4-12,例如:550e8400-e29b-41d4-a716-4466554...
Bug hunting in Btrfs Coroutines: step by step C++ exit-time destructors proto buffer layout Condvars and atomics do not mix gdb breakpoints tricks debugging a futex crash ...
其实最悲伤的一点是,我在之前的代码里大量用到了ostringstream,当时没有意识到这玩意其实在多线程下可能是有副作用的。 查资料的时候发现,ostringstream在构造的时候有加锁行为,在解释一些宽字符串(如汉字)的时候,依赖执行环境的本地化策略,一个可执行文件在运行前是无法确定这些转换策略的,所以ostringstream在构造的时候需要通过 std::locale()来获取本...
集中看下,c++代码下,有哪些可行的计时方法 低精度 clock 这种主要使用c语言的clock函数,精度较低,但是可以用于简单的计时。返回的时间其实是个long_t, 单位是ms,所以需要除以CLOCKS_PER_SEC来得到秒数。 #include <ctime> // 需要包含头文件 clock_t start = clock(); /...
Game sudoku Tutorial How-to-Make-a-Computer-Operating-System 30dayMakeCppServer Io workflow TinyWebServer Library folly async_simple Tools btop calculator