![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
【新人题学到的东西】
MISAYAONE
勤学如春起之苗,不见其增,日有所长。
展开
-
C++读取文件 怎样才能达到最快的速度?
首先,文件读取的速度极限就是硬盘的读速度上限,想要达到硬盘的读速度上限就要设法不让硬盘停下来,让它一直读。1:读取的是各种小文件还是一个大文件?顺序读大文件这个场景,内核优化过,你需要做的就是不要乱搞影响内核工作。老老实实用 fread 读。除非实验分析数据明显会加快,否则不要轻易用。OS 支持异步 IO 就用异步的,pending 一堆读请求,目的就是不让硬盘闲着。2...原创 2019-08-25 10:07:49 · 5443 阅读 · 0 评论 -
关于机械硬盘的两个重要知识点!!!
1:数据是按 "柱面" 存取的! 磁盘的数据读/写一般是按柱面进行的,即读/写数据时首先在同一柱面内从“0”磁头开始进行操作,依次向下在同一柱面的不同盘面即不同磁头上进行操作,只有当同一柱面所有的磁头全部读/写完毕后,磁头才转移到下一柱面(即寻道)。 因为切换磁头只需通过电子设备切换即可,而切换柱面则必须通过机械设备切换。电子磁头间的切换比机械磁头向临近磁道或柱面切...原创 2019-08-25 10:20:21 · 1424 阅读 · 0 评论 -
C++ lock-free 和 wait-free 基本概念与相关知识点
1、为什么会提出无锁化的问题?前提:多核编程有冲突,多个线程修改同一个数据会造成race condition。所以需要用锁。问题:锁容易造成性能瓶颈—> 如何无锁化—> 原子操作2、原子操作可能带来的问题(1)这个操作可能并没有那么快 —> 无法解决锁带来的性能瓶颈问题(2)有可能会造成程序的crash3、Cacheline【先了...原创 2019-08-25 15:10:10 · 3343 阅读 · 1 评论 -
CPU 的上下文切换
多任务系统往往需要同时执行多道作业。作业数往往大于机器的CPU数,然而一颗CPU同时只能执行一项任务,为了让用户感觉这些任务正在同时进行,操作系统的设计者巧妙地利用了时间片轮转的方式,CPU给每个任务都服务一定的时间,然后把当前任务的状态保存下来,在加载下一任务的状态后,继续服务下一任务。任务的状态保存及再加载,这段过程就叫做上下文切换。时间片轮转的方式使多个任务在同一颗CPU上执行...原创 2019-08-25 16:03:45 · 270 阅读 · 0 评论