江南Style是怎么把youtobe的计数器弄坏的

今天的整点儿新闻主要是想让大家学点东西用来泡妹子。想看段子和吐槽的现在可以退出了!我们明天整点儿新闻再见~!

留下来的朋友们,小手放在膝盖上准备听讲。

PSY 的《江南 Style》MV 这两天在 YouTube 上的点击量超过了 2,147,483,647,逼着谷歌升级了计数服务——

谷歌说我们从来没有想到有个视频的观看量会超过 2,147,483,647,直到 PSY 的《江南 Style》出现……

为什么超过这个看起来毫无规律的数会让 YouTube 的计数器出现问题呢?这个数字到底有什么神秘力量?是亲情?是仇恨?下面请收看特别节目《走进大计基》。

(以下科普来自知乎日报后端工程师老孙,有任何错误请指出,我们会把老孙赶回花果山。)

我们在页面上看到一个数字——1。

在服务器上这个 1 可不是 1 了,而是 1。

页面上一个看到一个数字——2。

在服务器可不是 2,也不是 2,而是 10。

如果是 30 呢?服务器上会存着 11110。

是的,电脑是很笨的,它只认识 0 或者 1。这样很 2,所以又叫二进制。

这些数据存在哪呢?存在一个计数器里,就像这样——

这是一个有四个位置的计数器,管它叫四位计数器。

假如它是二进制的,那么能显示的数值范围就是 0000-1111,转换成 10 进制就是 0-15(0 到 2 的 4 次方减 1)。

那我想记录 16 怎么办?不能够,这个不能够的学名叫冒漾(数据溢出)。

我们需要换一个更多位的计数器。

电脑上的计数器的大小一般是字节(Byte)的倍数,一个字节有 8 位(8 bits,每一 bit 只能显示 0 或者 1)。

我们取一个字节来给我们计数,所以我们就拥有了一个八位计数器,终于能记录 16 了!16 在这个计数器上会显示为——

00010000

这个计数器最多能记录到哪呢?11111111,10 进制为 2 的 8 次方减去 1 = 255,超过这个数也会冒漾。

好吧,看来我们只好再用 2 字节来做计数器,就是 16 位。能记录到 1111111111111111(二进制)= 65,535(十进制)。

十六位计数器可以记录这么大的数字,大家都很开心,攻城师觉得十六位计数器是好的。

不过有个问题,负数怎么记录?没有负号哇。

有一个聪明的攻城师说了,没关系,那我们就用最高位来表示正负,最高位是 1 这个数就是负的,最高位是 0 这个数就是正的。

01111111 再加 1 就是 10000000,为了便于计算,攻城师把这值定义为最小值,也就是 -128。

于是这个带正负的 1 字节八位计数器能记录的值为 -128 到 127。能记录的最大数变小了,但我们能记录负数啦,攻城师又开心了,

「我们再做一个 4 字节的计数器吧!」「好啊好啊好啊好啊……」

4 字节是 32 位,能记录的最大值是——

01111111111111111111111111111111

换算成 10 进制是多少?

2,147,483,647……

攻城师看见这个数字愣了,脑海中浮现出这样一张脸——

是的,鸟叔的《江南 Style》MV 观看量超过的就是这么一个数字。

所以聪明的你现在应该知道了,YouTube 给视频做计数的计数器是一个带正负的 4 字节三十二位计数器。

被鸟叔爆掉了。

回到谷歌这个声明,现在你看到他们说「我们从没想到有人能超过 2,147,483,647」就明白他们在说什么了吧?他们本来以为这个有符号的 4 字节三十二位计数器够用了。

也是,估计 YouTube 当年在刚开始创建网站的时候,不可能想到自己站上会有个视频被播放了二十几亿次吧,所以可能对计数器最大值这个东西也没当回事。

举个例子,优酷热播视频《小苹果》的播放数也只有 1968 万次。

而这已经是相当不错的成绩了。

谷歌修复这个问题的手段也很粗暴,他们直接把这个计数器升级成了带正负的 8 字节六十四位计数器,最大计数到 9,223,372,036,854,775,808。来,鸟叔,你再试试。

不过谷歌在修复这个问题的时候除了粗暴,也玩了一点情怀。

先说下,鸟叔超过了这个数字会发生什么呢?

计数器的第一位会变成 1——

10000000000000000000000000000000(二进制)= -2,147,483,648(十进制),然后这个数字会继续变大。

谷歌保留了这个错误结果,并且提醒大家可以把鼠标放在已经修复好的数字上面,「看一个数学小魔术(a little math magic)」

所以现在,鼠标没放在数字上面的时候,这个数字会显示视频的实际播放结果——

鼠标放在上面——

谷歌会显示一个错误的结果。

恩是的你可以给妹子展示这个小魔术,并且告诉她这背后的原理。

其实计算机界有很多问题都是由这个看起来很好解决的「冒漾问题」引起的。

比如有很多软件用来记录时间的计数器也是带正负的 4 字节 32 位计数器,只能记录从 1970 年 1 月 1 日之后的 2,147,483,647 秒,也就是到 2038 年 1 月 19 日凌晨 03:14:07。

然后这个数值会跳到最小的负数,然后计算机就疯了。

你看,你又有一样新的知识可以拿去泡妹子了。

「你知道 2038 年 1 月 19 日凌晨 03:14:07 是世界末日吗?」

不过不用害怕这些,因为攻城师是不会让这种事情发生的,他们已经无数次拯救地球了。比如之前的 IPv4 互联网协议,是给各位分配 IP 地址的。前一阵大家发现 IP 地址不够用了,于是攻城师说大家开始遵循新的 IPv6 服务吧,问题就解决了。

这些问题大部分出现的原因是什么呢?其实和 YouTube 刚开始建立的时候的想法一样——没当回事,「谁能知道我做这个东西居然会这么多人用、活这么久啊!」

这就不得不提知乎日报的前瞻性了!敝报从上线第一天,就用的是六十四位计数器!性能刚刚的!

不信你点一下这篇的赞试试,超过 21 亿个赞也不会坏掉。

时间: 2024-11-09 20:11:22

江南Style是怎么把youtobe的计数器弄坏的的相关文章

10亿都不赚 YouTube的行业启示录

得屌丝者得天下,几乎成为新的行业成功信条,尤其是在互联网领域多次被证明其威力巨大.但事实上,总会有"例外"出现.在视频行业,别说屌丝,就是能够聚集土豪.极客.宅男.腐女.文艺青年.普通青年等海量视频用户,也没有敢直言自己已经成功的. 视频行业的领头羊,每月用户达10亿的YouTube,在被谷歌"收编"九年后,依然不赚钱--2014 年,YouTube总营收达40亿美元,但尚未贡献盈利.造成这种"勉强维持生存"的原因有多种,其中不少与国内视频行业的

Jquery初体验一

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <script src="jquery/jquery-1

大学迎新晚会新闻稿

2012年12月6日19:00,##大学马克思主义学院“师生联谊迎新生,精彩华章秀马院”——2012年师生联谊迎新晚会在大学生活动中心成功举行.此次晚会经过长达一个月的精心策划和筹备,得到了学院领导老师的高度重视和大力支持以及同学们的积极参与.此次晚会以“迎新生师生联谊”为主题,通过为学院老师.同学们搭建一个师生联欢的舞台,将学院领导老师的关怀和温暖传递给每一位马院学子.与此同时,整场晚会的节目编排设计也生动具体地诠释了我院特有的“马院一家人,师生一家亲”的学院文化. 出席本场晚会的领导老师有马

Java基础加强总结(三)——代理(Proxy)

一.代理的概念 动态代理技术是整个java技术中最重要的一个技术,它是学习java框架的基础,不会动态代理技术,那么在学习Spring这些框架时是学不明白的. 动态代理技术就是用来产生一个对象的代理对象的.在开发中为什么需要为一个对象产生代理对象呢? 举一个现实生活中的例子:歌星或者明星都有一个自己的经纪人,这个经纪人就是他们的代理人,当我们需要找明星表演时,不能直接找到该明星,只能是找明星的代理人.比如刘德华在现实生活中非常有名,会唱歌,会跳舞,会拍戏,刘德华在没有出名之前,我们可以直接找他唱

2015出现神曲空挡期,玖月奇迹接棒筷子兄弟?

这两天玖月奇迹的新歌<踩踩踩>突然火了,这是要成为下一首神曲的节奏么?要知道今年的神曲市场已经有很长一段时间的空档期,此时有歌手站出来发布神曲正是最佳时机,去年夏天的<小苹果>火遍大街小巷,但今年筷子兄弟的<小水果>可就没那么好运了,而<踩踩踩>貌似有上位的势头. 神曲成歌手上位新途径,2015竞出现神曲空挡期 从<爱情买卖>.<忐忑>.<最炫名族风>.<江南style>到<小苹果>,神曲在中国越来

Java类编译后Class文件概述(上)

一.Class文件 注意:每一个Class 文件都对应着唯一一个类或接口的定义信息,但是相对地,类或接口并不一定都得定义在文件里(譬如类或接口也可以通过类加载器直接生成). 二.class文件的文件结构 class文件格式采用一种类似于C语言结构体的伪结构来存储数据,这种伪结构只有两种数据类型:无符号数和表. class文件的结构描述 ClassFile { u4 magic; <span style="white-space:pre"> </span>//4位

CSS样式表初学,比C#和JS简单

今天咱们一起来看下CSS样式表的基本基础 经常看博客或者喜欢钻研代码这一类的人对CSS可能有所耳闻,但具体的可能不是很清楚 那什么是CSS呢?与HTML又有什么区别呢?今天咱们就来说道下这个CSS CSS:层叠式样式表 HTML:超文本标记语言 HTML是负责展示你的网页上都有什么内容,都有什么 CSS是负责你的网页上的内容都怎么摆布,什么样的格局 那CSS到底怎么用呢?布局用HTML中的table不久可以布局么,根据具体要求进行切割就行,没必要用CSS布局,很多人都会这么想 那我要是告诉你一种

抄袭/模仿/致敬的那些事:从《以父之名》说起(转)

转自:https://zhuanlan.zhihu.com/p/20241386 这些年来,关于各种作品抄袭的撕逼和争论从未停止,几乎大部分稍有名气的音乐人都被相关的言论攻击过.希望本文能为满大街的"抄袭"言论做一个小小的解答. ================================================================= 首先从今天的主角,周杰伦<以父之名>开始说起,谈谈音乐的公有/私有领域的划分. 在韩国作曲家梁邦彦的<Lace

《从0到1》读书笔记第一章&quot;未来的挑战&quot;第2记:做老子还是做孙子

从1到N VS 从0到1 - 别让自己的小鸡鸡抓在别人的手上 近几年国内互联网创业上非常流行一种C2C(也就是Copy to China - 拷贝到中国)的创业模式,打的就是一个时间差和地域差.将在国外的如硅谷等已有的创新拷贝到中国来实现,然后因为"中国特色"的各种保护情况,很多人竟然都做成功了.小的抄袭多如牛毛,大的抄袭也屡见不鲜.如腾讯qq起家抄袭的就是OICQ,据说微信也不是先行者,而是拷贝What's up (请看本人另外一篇文章<如何为你的初创应用App开发公司建立战略