现代CPU为了提升性能都会有自己的缓存结构,而多核CPU为了同时正常工作,引入了MESI,作为CPU缓存之间同步的协议。MESI虽然很好,但是不当的时候用也可能导致性能的退化。 到底怎么回事呢?一起来看看吧。 false-sharing的由来 为了提升处理速度,CPU引入了缓存的概念,我们先看一张C ...
分类:
其他好文 时间:
2020-07-23 16:11:03
阅读次数:
80
JavaScript 线程 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。 Web Worker 的 ...
分类:
其他好文 时间:
2020-07-22 15:55:24
阅读次数:
62
多进程和多线程; 多进程:电脑有几核cpu、就只能同时运行几个进程、多个进程可以通过上下文切换进行调度。 python里的多线程同时也只有一个线程在运行、利用不了多核cpu--全局解释器锁GLI。 1、CPU密集型任务,用多进程 ->消耗CPU比较多2、IO密集型任务,用多线程 ->消耗io比较多 ...
分类:
编程语言 时间:
2020-06-29 09:52:20
阅读次数:
51
一、什么是 wrk 摘自官方 GitHub 上的英文介绍: 翻译一下: wrk 是一款针对 Http 协议的基准测试工具,它能够在单机多核 CPU 的条件下,使用系统自带的高性能 I/O 机制,如 epoll,kqueue 等,通过多线程和事件模式,对目标机器产生大量的负载。 PS: 其实,wrk ...
分类:
其他好文 时间:
2020-06-22 18:55:55
阅读次数:
61
by 千阳 本节主要介绍 multiprocessing 多进程模块,由于 threading 多线程模块无法充分利用电脑的多核优势,而在实际开发中会对系统性能有较高的要求,就需要使用多进程来充分利用多核 cpu 的资源,下面详细介绍 Python 中的 multiprocessing。 multi ...
分类:
编程语言 时间:
2020-05-31 15:39:47
阅读次数:
63
并?和并发1.并发:指的是任务数多于cpu核数,通过操作系统的各种任务调度算法,实现?多个任务“?起”执?(实际上总有?些任务不在执?,因为切换任务的速度相当快,看上去?起执??已)真正的并?执?多任务只能在多核CPU上实现,但是,由于任务数量远远多于CPU的核?数量,所以,操作系统也会?动把很多任务轮流调度到每个核?上执?。2.并行:指的是任务数?于等于cpu核数,即任务真的是?起执?的。
分类:
其他好文 时间:
2020-05-20 15:45:54
阅读次数:
67
前言:标题谈的是多核CPU下绑定某个中断到指定的CPU的方法,但是实际工作中,这个方法可以适配很多种数据接收的情况,所以就记录一下自己之前工作上遇到的具体某一个问题以及解决方法。 之前有一个项目,需要串口接收大量的数据,硬件平台采用的是NXP的I.MX6D系列芯片,双核CPU。实际发现,在接收数据的 ...
分类:
其他好文 时间:
2020-05-10 13:21:25
阅读次数:
89
单核处理器:单个CPU,且芯片比较大。多处理器系统:一块主板上有2个或多个CPU芯片,不同CPU间靠系统总线来完成通信。通信效率较低,无法充分利用每个CPU提供的计算能力。可扩展性较差,想要更多处理能力,需要一个拥有更多处理器的主板。 出现超线程技术:相同的芯片中复制一些CPU内部组件,例如寄存器或 ...
分类:
编程语言 时间:
2020-04-06 13:32:14
阅读次数:
118
【场景】客户端大量连接,如果采用多线程方式的话,线程上下文切换导致性能不佳。因此采用io多路复用。 一、上下文切换 对于单核CPU来说(对于多核CPU,此处就理解为一个核),CPU在一个时刻只能运行一个线程,当在运行一个线程的过程中转去运行另外一个线程,这个叫做线程上下文切换(对于进程也是类似)。 ...
分类:
其他好文 时间:
2020-03-28 16:16:39
阅读次数:
71
集合操作最简单的高效并行处理并行处理是现代开发中必不可少的部分,凡是资源可以相互独立的,都可以运用并行,这样可以充分利用多核CPU的性能,当然,我们也要注意,一定要无阻塞,写出让线程阻塞的代码是每个开发人员的耻辱还是通过实际场景来说明吧,有个项目,每天晚上要对所有用户进行等级评定,用户信息存储在数据 ...
分类:
其他好文 时间:
2020-03-14 00:57:19
阅读次数:
75