不是针对谁,但这个问题下 @鲁超 的高票答案中存在很多或大或小的错误。科普很不容易,要兼顾正确性和通俗性,但不能为了通俗就用一些似是而非的文字游戏来妥协,甚至牺牲最基本的正确性。所以在这里写个回答分析一下其中一些:
1. 鲁超在回答中写道:
没想到从1937年开始,μ子、中微子、π介子各种奇异粒子接连在回旋加速器中被捕捉到。
这是错的。
μ子最早是于1936年被Carl D. Anderson和Seth Neddermeyer在宇宙射线中发现的。中微子最早是于1956年被Clyde L. Cowan和Frederick Reines利用核反应堆作为中微子源探测到的。π子最早是于1947年被 Cecil Powell、César Lattes、Giuseppe Occhialini等人利用宇宙射线探测到的。这些粒子最早的探测都跟回旋加速器没有任何关系。
2. 鲁超在回答中写道:
1956年,物理学家首先发现θ子和τ子的自旋、质量、寿命、电荷等性质完全相同,让人不得不怀疑这俩货实际上是同一种粒子。但另一方面,θ子会衰变成两个π介子,而τ子会衰变成三个π介子,这又如何解释。
这种情况下,两个在美国的中国小伙子杨振宁和李政道对此开展研究,他们提出:这两种粒子实际就是一种,之所以衰变方式不一样,是因为衰变的时候发生了弱相互作用,在微观世界,弱相互作用的宇称不守恒。
这段话也是有问题的。
首先,当年的τ-θ难题的核心并不是性质相同的粒子有两种不同的衰变模式。在物理学中,无论是基本粒子还是复合粒子,有多种变化途径是很正常很常见的现象。比如Z玻色子就既可以变成一对正反电子型中微子,也可以变成一对正反μ子型中微子,还可以变成一对正反τ子型中微子。τ-θ难题的关键在于π子的parity是 -1,而parity作为一个量子数是通过相乘(而不是相加)来复合的,因此两种衰变模式的产物的parity不相等,这才是τ-θ难题的关键。
其次,当时弱相互作用已经被发现了,物理学家也早就知道τ子和θ子衰变为π子是弱相互作用的过程。因此杨振宁和李政道提出的并不是τ子和θ子“衰变的时候发生了弱相互作用”这种在当时人尽皆知的废话。
3. 鲁超在回答中写道:
稍有常识的人都知道,镜子里的人跟自己不是完全一样的,左右互换了。但镜子里的人也必须遵守同样的物理定律,我跳他也跳,我蹲他也蹲,不可能看到我在刷牙,而他却在洗脸。这就是宇称守恒!
这种对宇称守恒的理解是不正确的。
即使镜子里的人与镜子外的人有不一样的动作和行为,也不代表宇称不守恒。反过来说,即使镜子里的人与镜子外的人的动作和行为完全一致,也不代表宇称守恒。宇称守恒指的是在宇称变换下物理定律不发生变化。镜子内外的人的行为是否相同跟物理定律并没有关系。
4.鲁超在回答中写道:
当吴健雄的论文发表之后,第二天,《纽约时报》就以头版报道了吴健雄实验的结果。
这是不符合历史事实的错误。
《纽约时报》对吴健雄实验的头版报道是在1957年1月15日哥伦比亚大学的新闻发布会的第二天,而吴健雄等人的论文《Experimental Test of Parity Conservation in Beta Decay》发表于1957年2月15日。(见文末截图)
5. 鲁超在回答中写道:
动量守恒代表的是空间平移的对称性,空间的性质在哪里都是一样的,并不因为你在南京而不在上海,你就会胖一点或者跑得快一点。
角动量守恒代表的是空间的各项同性,不管转多大角度,物理定律都是一样的,如果你要说你转多了头晕,不是由于空间出错了,而是你的生理特征,这也由更深层次的物理学定律所支配。
能量守恒代表的是时间平移的对称性,时间总是均匀的流逝着,时钟不可能一会快一会慢。
这种表述是错的。
空间平移不变性指的是物理定律在空间平移的变换下保持不变。空间平移不变性跟空间性质没有什么直接关系,也不能推出 “空间的性质在哪里都是一样”。一个简单的例子就是Schwarzschild时空,在这个球状对称的时空中,空间性质并不是处处相同,因为不同半径处的曲率等性质显然不同。但其中的物理定律还是有空间平移不变性。
同理,时间平移不变性也跟时间是否均匀流逝没有什么直接关系。
6. 鲁超在回答中写道:
这就是伟大的“诺特定理”,它体现了守恒律的美。
而现在吴健雄的实验告诉大家,原来我们的宇宙竟然有一个不守恒的地方,而且是我们之前最意想不到的地方:镜像不对称,大多数人都首先表示不能接受,泡利“左撇子”的论调正是代表了大家的心声
这种对诺特定理的理解是错的。
诺特定理中涉及到的与守恒律相关的对称性是连续对称性。宇称变换是离散变换而不是连续变换,宇称对称性(和宇称守恒)跟诺特定理并没有直接关系。
7. 鲁超在回答中写道:
一直以来,电荷对称性也被视为宇宙真理,每一种粒子都有其对应的一种反粒子,除了电荷以外,其他性质几乎完全一样。
在粒子物理学中,charge-conjugate symmetry并不能翻译为电荷对称性。因为charge-conjugate transformation涉及到的不只是电荷,还包括与强相互作用相关的色荷(color charge)等其他charge quantum number。在charge-conjugate transformation下,粒子变成相应的反粒子,正反粒子的区别不仅仅在于电荷,还在于其他charge quantum number。这也是为什么电荷为零的中子跟反中子不相同。
另外,除了这些charge quantum number,正反粒子的其他性质就是完全一样,并不需要加上一个“几乎”。
8. 鲁超在回答中写道:
对称破缺的一种比喻,小球只有在中央的顶点才是稳定的、对称的,当受到微扰,它就会落下来,产生运动,并发出各种叮呤咣啷。稳定的、对称的、孤芳自赏的小球甚是无趣,叮呤咣啷才是我们宇宙的精彩。
这是错的。
在“墨西哥帽”模型中,中央顶点对于小球来说是不稳定的,这也是为什么小球会倾向于发生对称性破缺而从顶点移动到较低的点。
两天过去了,看的人,关注的人不少,能说得上话的看来是寥寥无几,除了青椒牛老板忆苦思甜了一下,七位靓号豹哥连回答的勇气都木有了,被吓跑了
那我先写一些目前已知的信息,权当是抛砖引玉
先说一下两个现有的低延时(low latency)的gc策略,zgc和shenandoah
zgc应该都很熟悉了,出来有一段时间了,这个是oracle官方团队做的,虽然说是官方团队,但其实是bea jrockit的人写的,以前sun的hotspot和bea的jrockit是早期比较出名的两个jvm实现,hotspot用c++实现,jrockit用c和java实现,说起来还挺好笑的,当时的评测结果是,hotspot更适合客户端,需要快速启动的程序,而jrockit更适合长期运行的程序[1],后来sun和bea都被oracle收购了,这两个jvm也就合二为一,其实更确切一点说就是,合并到hotspot中去,然后jrockit被贡献给了openjdk。然后jrockit的工程师per liden就是后来的zgc的team lead。zgc现在已经做到,大部分gc的latency在1ms以内,平均只有0.1 - 0.2ms之间,基本上无感知了,正常人条件反射的时间是0.25s,也就是250ms,经过训练的运动员,可以达到100ms,眼睛对于动画的感知,在1/60s左右,也就是17ms左右,经过训练的电竞之类的,可能可以达到90或者120fps,也就是8-9ms,就是人的极限了,现在gc最长导致程序的停顿在0.2ms以下,这种级别的停顿,人是不可能感知得到的
shenandoah是red hat的作品,现在red hat被ibm收购了,以前red hat和ibm,都有自己的jvm,分别是开源的iced tea和openj9,后者到现在还在不断出新,据说内存占用上会有一定优势,现在叫terium,北洋的下载网站[2]上对terium和openj9的支持是很好的,更新得很积极。而iced tea在openjdk出来之后,基本上就处于被放弃的状态。那red hat后来基于openjdk,制作了自己的低延时的gc策略,就是shenandoah,shenandoah对比zgc,对硬件的要求相对低一点,但是对用户给出的承诺,也低一点,就像zgc早期,承诺在10ms以内完成全部gc,shenandoah从来没有给过任何这种承诺,也就是说,我尽力。然后官方oracle提供的openjdk的build里面,并不提供shenandoah,被oracle删了,但是其他的openjdk的build,都提供shenandoah这个gc策略,一般认为,zgc更适合客户端程序,shenandoah更适合服务器端程序,因为前者更满足一些硬性指标,比如保证10ms以内一定完成,后者就没有这个承诺,但是相对应的,前者对于资源的消耗也更大,一般要腾出15%左右的内存富余给zgc使用,然后cpu处理能力会有所下降,因为拿去给zgc用了,那相比之下,shenandoah对于这种资源的硬性要求就低,但是它同样也不给这个承诺,更像是随缘,我尽量,风险你自担
这是现有两个低延时gc
那按照新的gc的论文里面写的内容看,zgc和shenandoah虽然都实现了low latency,但是是以牺牲吞吐为代价,也就是需要一定的cpu和内存消耗,你需要为low latency腾出为了实现low latency gc的资源,相应的,等同cpu和内存的硬件的处理能力,就会相应下降一点,这其实也很合理,不能说既要马儿跑,又不让马儿吃草,让机器给你干点活,总要给人家点资源
但是,新的gc策略,简称lxr
认为,可以通过基于引用计数的策略,可以进一步降低对系统资源的占用,让gc在实现低延时的同时,又不需要牺牲太多cpu和内存资源,进而使得吞吐不受影响,所以论文的标题就是:低延时,高吞吐的gc策略
然后给出了一堆的评测结果,对于评测结果,你可能会怀疑,是吧,对比的openjdk 11的结果
但实际上,论文中有具体的validity,意思就是,他们打算把这个gc port到17上去,但是他们同时也对比了17的shenandoah,发现17的shenandoah和11的shenandoah结果几乎是一样的,而且11有backported improviement,也就是在后续版本中,shenandoah的改良,都会回溯到11的高版本中去,所以shenandoah的11没什么问题,17的zgc整体策略改变了,比较难对比,这个期待后续的比较吧
所以11没什么问题,然后期待他们给出17的build
然后说一下实现的过程,这个过程很有意思,他们先用rust开发了一个工具mmtk,然后这个工具提供了openjdk(c++写的)jikes rvm(java写的java研究虚拟机)和v8(c++写的)的绑定,然后再用这个rust写的绑定工具,实现了新的gc策略
从这一点上,可以看出,现在很多软件的研发,都已经从c++上转移到其他语言上去,这并不是坏事,因为c++的代码确实太难阅读了,openjdk的开发进度,其实受到c++语言本身混乱语法颇深,就是你可以感觉到,一大堆人做了好久(接近10年),但是进步相当有限,没什么成果,相比之下,你用其他语言,往往都能做得比c++更快,而且性能更好,就像graal的jit(用java aot实现的工具),什么都没改,直接替换openjdk里面的jit也就是c1/c2,都能在一些时候有高达15%的性能提升,所以现在这个时间点,没有什么太多理由继续沿用c++,当然openjdk本身的开发还要继续,只是源码这些,正在一点一点从c++中转移出去,那最终发展成什么样子,拭目以待了
然后这个gc本身诞生的环境,也很值得玩味
这是一个高校的论文,虽然三作是谷歌,但最重要的一作和二作,都是高校,这就预示了我之前说的,现在的科学和技术的发展,哪怕是技术这种科学的应用面,也越来越多,不再是企业能够推动得了的了,企业的目的是赚钱,但是推动科学技术的进步,更多的是一项事业,所谓事业,就是你要牺牲眼前短期利益,为了长远的发展考虑,那这个投入,都是动不动十年二十年的投入,企业没有那个耐心去等待,所以最好的方式就是,企业出钱,投资到高校等研究机构中去,这样一来可以减轻政府对高校的负担,人也更专业,高校里面教授博士一大堆,每天就是搞研究,企业里面,教授都罕见,教授也不愿意放弃铁饭碗去给你修福报,同时,因为是项目制的,所以搞完研究之后,一拍两散,企业不用负担教授博士们搞完研究离开公司(也就是裁员)的成本,所以这是多赢的局面,我国政府其实也正在推动这种校企合作,产学研嘛
然后这个就很好滴展示了,将来,对于技术的推动和进步,会是怎样的一种局面,除此之外,llvm,graal这些项目,研发主体也都在高校里面,现在是连传统openjdk的开发,也在逐步转移到高校中去,企业搞研究的时代,差不多过去了
所以你看,达摩院开始大面积裁员,湖畔大学关停,但是这些高校的研究成果,开始频频出现,以前关于gc的论文,还有不少是ibm,azul之类的企业发的,现在越来越多是高校发出来的,实际上虽然国内阿里用java的频次比较高,但是你看我写了这么多,有阿里什么事吗?
技术发展到一定阶段,就必然要求更高的研发门槛,就不是随便一个企业的打工仔,就能凭着一腔热血,搞搞搞,就能有所成就的,现在慢慢都过了那个阶段了,像国外贝尔实验室,早就不行了
最后本论文的一作好像是个华人
中国的平头老百姓是啥都不懂的、啥都做不了的、啥都不想做的贱民吗?
英雄的老百姓关心美国,因为它就横亘在面前。
“Because it's there.”
因为山就在那里,所以英雄的老百姓就想征服一下呐,人类的天性而已,家畜或许不能理解。
全世界所有厉害的东西,中国的平头老百姓都关心:上至国际空间站,卡西尼,奥陌陌,旅行者;下至下水道油布包,煮饭仙人,圆珠笔尖,还有猛禽,幽灵,高精狙,福特号,电磁炮,可燃冰,盾构机,大豪斯,大牛排,电瓶车,鸟语花香,老虎大象,GPS,NMD,M1p,RTX,诺贝尔,太平洋。
我想要的不多。你给不了,我就自己想办法。