• 用动图的方式,理解 CPU 缓存一致性协议!

    大家好,我是小林。我之前写过CPU缓存一致性MESI协议:10张图打开CPU缓存一致性的大门。然后期间挺多人对MESI协议的转换有疑问,其实我在文章中把MESI协议状态切换的各个过程都总结成了一个表格,可能内容太多,很多小伙伴没有仔细看。就在昨天,我发现个可以「在线体验 MESI 协议状态转换」过程的网站,地址如下:https://www.scss.tcd.ie/Jeremy.Jones/VivioJS/caches/MESIHelp.htm我先给大家复习下MESI协议,然后再跟大家讲一些这个网站怎么用。MESI协议MESI协议其实是4个状态单词的开头字母缩写,分别是:Modified,已修改...

    小林coding
    2021-09-28
    CPU
  • 漫画:什么是 “图灵测试” ?

    艾伦·麦席森·图灵(1912-1954)在一间小黑屋里,有这样三个角色:一个人类评审员,两个受试者A和B。其中一个受试者是计算机的人工智能程序,另一个受试者是人类。评审员无法直接看到受试者,只能通过打字的方式,与两名受试者进行提问沟通。经过多次的询问和回答,最后由评审员来判断:哪一个受试者是人类,哪一个受试者是计算机。如果评审员判断错误的几率超过30%,那就说明计算机成功地伪装成人类,骗过了受试者,从而可以认为这样的计算机已经具备了一定的思考能力。像这样六位整数的乘法运算,普通人类根本不可能在短时间内计算出来,如果受试者在一秒内就给出了正确结果,那就太不自然了,显然是计算机程序的回答。所以,要...

    程序员小灰
    2021-09-28
  • 为什么那么多高性能网络产品都是C语言开发的?

    什么是网络编程?用一句话概括,就是对网络协议的落地。 落地,意味着对实战的要求更高。所以,一些朋友更喜欢用类似Netty这种封装好的框架——快速,高效。确实,跟开发细节相比,我们常常更看重开发效率。 可日常的项目里,我们也不得不面对极端的网络性能考验。没人喜欢堵车,但应对大量请求时,如果网络性能处理不佳,数据、业务就会面临大塞车。 举个正向的例子,之前在绿盟有个信息安全产品,叫黑洞,是当时市场上最成功的DDOS过滤设备。这玩意最大的技术难点就在于:当攻击报文洪水到达时,每秒要过滤掉几十万攻击请求。在那之前,我从没想过通过程序代码,对网络报文的处理效率,竟然能达到如此强悍的地步。 早些年尚且如此...

    C语言编程
    2021-09-28
  • 值得学习的单片机菜单框架(附源码)

    点击上方“小麦大叔”,选择“置顶/星标公众号”福利干货,第一时间送达大家好,我是小麦,以前用单片机做用户交互的菜单的时候,都比较痛苦,如何写一个复用性高,方便维护,可扩展性高的GUI框架呢?当然可以自己动手写一个,这个过程充满了艰辛和挑战,现在我推荐一个很棒的框架,直接拿来用就行,也可以借鉴和学习其中的思路,一定会收获颇丰。知道有多少人折腾过液晶显示的菜单,我觉得很多人都应该搞过,我还记得以前大学参加电子设计竞赛获奖的作品,我就用到了一个12864,里面有菜单功能。以前可能觉得菜单高大上,其实并不是想象中的复杂,本文为大家分享一个用单色屏做的菜单框架。代码托管在github:https://g...

  • 内部群炸锅了,同事又删库了!

    事件起因我们的系统中有数据导入的功能,可以把特定的格式的excel数据导入到系统中来由于客户电脑的文件比较多,很多文件的名字也比较相近,客户在导入excel时选错了文件这个错误的excel文件的格式恰好能被系统解析,客户也没及时发现导错了文件,所以就将6万多条没用的数据导入到了系统中这6万多条数据对系统来说就是无用的数据,不会影响系统的运行,最多也就是占用一点数据库空间而已客户只需要把正确的excel重新导入,就可以继续完成他的业务了但是,客户是一个重度强迫症患者,他觉得在管理平台看到这6万多条没用的数据令他抓狂客户想要把这些数据删除,我们系统又没有提供批量删除功能,只能单个删除,这无疑是一个...

    小林coding
    2021-09-27
  • 三位朋友的年薪

    最近几位朋友一起吃饭,聊到尽兴时,谈起了一个大家都非常感兴趣的话题,薪资,就简单写篇随笔记录一下。工作以来,我感觉自己变得有些佛系了,很少去打探同龄人的薪水状况。每年的秋招季,不少同事都会抑制不住心情的好奇心,在各类互联网社区去查看应届生的薪资情况,以推测自己的薪资所处的位置。要是薪资比应届生还低,一些觉得薪资没有达到预期的同学,可能就会动了好好学习,年后跳槽的心思,而且这部分比例还不会太小。因此,每年如果应届生的薪资出现了较大幅度的增长,公司为了稳住人心,也会相应的提升今年的普调(一般指员工薪资每年的正常增长)幅度。征求了当事人的同意之后,这里简单的分享一下他们的薪资水准,也许对大家来说,会...

    小林coding
    2021-09-27
  • 我为看一张图片,跨过了 2600 公里!

    大家好,我是小林。我写技术文章画的图片是保存到GitHub的,没别的原因,就是因为免费,但是GitHub访问的速度大家都懂的,访问的速度很慢。所以我会用CDN来加速图片的访问,也就是我的图床的方案是GitHubjsdelivrCDN,使用很简单,只需要把域名地址替换一下就行。那为什么访问GitHub会很慢呢?GitHub离国内就近的服务器是在新加波,距离我这有2600公里,也就是说,访问GitHub上的一张图片,一个数据包就要走2600公里这么远!而且,互联网从逻辑上看是一张大网,但实际上是由许多小网络组成的,每个网络络中还存在许多的路由器、网关,数据每经过一个节点,都要处理一下,在二层、三层...

    小林coding
    2021-09-27
  • 面试官:代码执行 send 后,数据就发出去了吗?

    今天又是被倾盆的需求淹没的一天。有没有人知道,那种“我用3句话,就让产品为我砍了18个需求”的鸡汤课在哪报名,想报。"听懂掌声"的那种课就算了,太费手了。扯远了,回到我们今天的正题,我们了解下这篇文的目录。目录代码执行send成功后,数据就发出去了吗?回答这个问题之前,需要了解什么是Socket缓冲区。Socket缓冲区什么是socket缓冲区编程的时候,如果要跟某个IP建立连接,我们需要调用操作系统提供的socketAPI。socket在操作系统层面,可以理解为一个文件。我们可以对这个文件进行一些方法操作。用listen方法,可以让程序作为服务器监听其他客户端的连接。用connect,可以作...

    小林coding
    2021-09-27
    代码 se
  • 面试官 | 写if 时不带 else,你的代码会更好!

    来源:翻译自:NicklasMillard的文章《BetterSoftwareWithoutIf-Else》注:本文并不肯定或者否定哪一种写法,仅仅为大家提供一些其他的编码思路或者一些值得借鉴的点子,希望大家能在公众号的每一篇文章中都能有所收获,同时欢迎探讨!设计更好的软件,替换If-Else的5种方法。入门到高级示例让我直接说这句话:If-Else通常是一个糟糕的选择。它导致设计复杂,代码可读性差,并且可能导致重构困难。但是,If-Else已成为事实上的代码分支解决方案,这确实是有道理的。这是向所有有抱负的开发人员讲授的第一件事。不幸的是,许多开发人员从来没有前进到更合适的分支策略。有些人的...

  • Jlink使用技巧之读写SPI Flash存储芯片

    Jlink使用技巧系列教程前言大多数玩单片机的人都知道Jlink可以烧写Hex文件,作为ARM仿真调试器,但是知道能烧写SPIFlash的人应该不多,本篇文章将介绍如何使用JLink来烧写或者读取SPIFlash存储器,JLink软件包含的工具中,有一个是JFlashSPI工具,这就是一个烧写和读取SPI存储器的工具了。准备要烧写程序或读取程序的的Flash芯片:SPI协议的Flash都可以,如W25Q128。JFlashSPI软件工具:在Jlink系列软件的安装目录下JLinkV9仿真器要烧写的文件:如GBK字库文件,UNIGBK.BIN硬件连接Jlink内部集成了SPI协议,部分接口是作为...

  • 是IT培训班好,还是大学计算机专业好?

    程序员是一个很辛苦的职业,但也为出身普通的年轻人提供了一个改变命运的机会。因为相对其他行业,程序员的收入还算是比较可观。最近,有读者发信问小灰:“自己未来想做程序员,不知道学编程到底应该选择正规大学的计算机专业,还是选择IT培训班呢?”许多小伙伴,可能都多少有这方面的疑问,今天小灰就来说一说自己的看法。先说结论。如果你有的选,肯定是首选正规大学的计算机专业。好处有三点:第一,你在科班学到的内容更系统。你可以系统地学习计算机领域的底层知识,比如微机原理、通信原理、算法与数据结构等等,这些知识对你职业的长远发展有好处。第二,科班出身的人在社会上的认可度比较高。许多大公司,以及国企央企,都会优先招收...

  • 为什么年轻一代连操作系统的基本知识都不懂?

    编译|核子可乐褚杏娟策划|Tina计算机网络、编译原理和操作系统相关知识,肯定不会过时。文件夹与目录结构这些帮助前几代人理解计算机的基本理论,在很多年轻一代看来已经成了一种莫名其妙的“疯话”。两代人之间的碰撞天体物理学家CatherineGarland从2017年开始逐渐意识到这个问题。当时她正在教授一门工程课程,要求学生们使用仿真软件为喷气发动机中的涡轮机建模。虽然作业布置得很清楚,但她却不断接到学生们的求助电话,他们都说自己收到了同样的错误提示:程序找不到他们的文件(FilenotFoundError)。当Garland询问学生作业是保存在桌面上还是共享驱动器时,学生们好像完全听不懂。“您...

  • 为了一个 HTTPS,浏览器操碎了心···

    我是一个浏览器,每到夜深人静的时候,主人就打开我开始学习。为了不让别人看到浏览记录,主人选择了“无痕模式”。但网络中总是有很多坏人,他们通过抓包截获我和服务器的通信,主人干了什么,请求了什么数据全被他们知道了!光窃听也就罢了,他们还经常篡改内容,在网页里面插入诱人的小广告,真是太坏了!为了保护主人的隐私还他一个干净的上网环境,我决定对通信加密!第一版:直接简单加密加密嘛,很简单,把原来要发送的数据加密处理后再发给服务器就行了。为了安全,密钥当然不能固定,每一次通信都要随机生成。不过接下来我犯难了,我该怎么把这个秘钥告诉服务器呢,服务器没有秘钥就解不了密,也就不知道我在请求什么资源了。也不能直接...

    CPP开发者
    2021-09-27
    浏览器
  • Jmeter 压力测试中关于 Http 的那些事儿

    作者| chenyk来源| https://www.jianshu.com/p/c0c09b5ef26aHttp请求模拟1、新建线程组操作:鼠标右键测试计划->添加->Threads(Users)->线程组->修改测试计划名称图片新建线程组2、添加取样器HTTP请求操作:鼠标右键...

    架构师社区
    2021-09-26
  • 为什么delete表数据,磁盘空间却还是被占用

    最近有个上位机获取下位机上报数据的项目,由于上报频率比较频繁且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录。明明已经执行了delete,可表文件的大小却没减小,令人费解项目中使用Mysql作为数据库,对于表来说,一般为表结构...

    架构师社区
    2021-09-26
发布文章