V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 46 页 / 共 123 页
回复总数  2453
1 ... 42  43  44  45  46  47  48  49  50  51 ... 123  
哦对,还有,编程语言实现“将一种计算模型映射到另一种计算模型”,这个也算是一个“问题”,无论其源和目标是什么,这个“问题”都可以由多种计算模型,多种算法来解决。
因此把 E 语言映射到 Python 的工作,可以使用 Python 完成,也可以使用其他编程语言完成。Python 可以把 E 语言映射到 Python,也可以把 E 语言映射到 JVM 。这一过程一般就是纯粹的“计算”,甚至可以不需要 FFI 。

GitHub 上的很多编译器项目都是直接拉下来就能构建,额外的依赖很少。
然后我现在硬盘里有个尚未构建成功的 Chromium ...
不一定。“基于旧语言创建新的语言”的方法,比茴的写法都要多很多。
我猜测楼主这种想法可能是受了某些人“所有语言都差不多”,“学语言就是学库”之类言论的影响。

首先要明确,编程语言存在的意义是充当人与机器沟通过程中的编码形式,程序员输入的表面上是代码,实际的东西是隐藏在代码中的 “计算”。
一个循环在不同的语言中有不同的写法,就好象乳法有不同的乳法,但是最后都是循环,都是乳法,这一“本质”不因具体的实现方法而不同。

然后要区分语言和语言实现,语言定义了计算的编码形式,而语言实现将该语言所编码的计算在特定的平台上执行。同一个语言可以有多种实现,可以“基于”不同的语言,从这一点上来说,标题所提出的问题的答案就是否定的。

再然后是编程语言的性能,语言的性能应该定义为“不同编程语言进行同样计算时的性能”,但是需要注意的这里的“计算”是使用编程语言编码的,编程语言本身定义了计算的抽象模型,也就是说基本上在进行任何有意义的比较时,比较的都不是完全一致的计算。而从实际意义来讲,“计算”本身是解决问题的工具,所以一般在讨论“编程语言的性能”时,讨论的是使用不同编程语言解决同样问题的性能差异。但是人们使用编程语言解决问题时使用的并不是这个编程语言的定义本身,而是编程语言(即计算模型)的特定具体实现,因此其实是“使用特定的编程语言实现解决特定问题时的性能”。

但是就算同样是“使用特定的编程语言实现解决特定问题”,也有不同的方法。比如同样是大数组的排序,C 用插入排序,Python 用快排,就不太合适。这个具体的方法可以被叫做“算法”,但是由于上面提到的不同语言之间计算模型的差异,“算法”也不具备直接的可移植性。在一个语言实现中高效的算法,在另一个语言实现中不一定高效。所以其实就算是同一个语言的不同实现,也没有什么太大的可比性。另一个讨论“性能”时经常被过度简化的是“问题”,这一点其实在讨论硬件时尤其明显,吃瓜群众往往希望能获得一个简单的答案“硬件 A 比硬件 B 的性能高百分之几”,但是性能问题本来就不是这么简单的,在解决某一个问题上的优化,对于另一个问题来讲可能就是劣化。而这种心理正好被 marketing 利用,因为这样他们可以 cherry pick 并着重宣传好的方面,引导大众不去关注不那么好的方面。

再说说硬件,目前的计算机硬件不理解问题,更无法直接帮你解决问题。其厂商定义了自己的计算模型,硬件本身则提供这一模型的具体实现,这是一切软件工作的基础。原则上硬件是编程语言实现的一部分,但是在实际应用中的关系要更加微妙。特别是在研究性能问题时,具体讨论的对象往往取决于实际情况。比如一般会要求硬件条件是一样的,同时硬件需要操作系统、驱动程序等环境支持,这些应该也保持一致。考虑到现实中绝大多数编程语言实现者一般只有选择硬件和操作系统而没有影响它们的能力,绝大多数情况下也是将这些都排除在“编程语言实现”范围之外的。但是在比较 Kotlin 和 Scala 的性能时,JVM 也应该保持一致。就连比较两个 C 实现的性能,也需要考虑内存分配器的影响。“保持一致”并不能完全解决问题,整个编程语言实现中,不同的模块和不同的配置方式可能会体现出不同的性能特点。

所以这是楼主所提出的“编程语言”和“性能”,以及把这两个词放在一块时,背后的水有多深,简单来说就是基本没法谈,楼主的问题也就没什么意义。

(哦对我还没说“性能”的度量有多个维度,包括但不限于延迟、吞吐量、功耗、存储占用等)

那一般人们说的编程语言的“性能”指的是什么呢,其实只要把上面几个比较 tricky 的部分都加上“约定俗成的”就可以了:
* 比如,第一个问题是语言实现的问题,“约定俗成的语言实现”指的一般就是一个编程语言的 de facto standard 实现,或者主流实现。
* 之后是硬件及软件环境问题,这个一般把两个语言实现纵向来看,能保持一致的都要保持一致,但也不仅仅是“保持一致”那么简单。在这里有可比性的前提是:在同样的硬件+操作系统组合下,存在语言的主流实现,并且该组合是该主流实现的主要目标之一。
* 然后是“算法”问题,对于某个特定的问题,“约定俗成的”一般采用一个使用该语言的平均水平的程序员解决这一问题时会采用的“算法”。
* 最后是具体解决什么“问题”的问题,这个就多了,比较“约定俗成的”有光线追踪、计算 pi 、mandelbrot 、矩阵乘、正则匹配、数独、词典计数、Web 服务器等。如果一个编程语言实现相对于另外一个,在大多数“问题”上表现都没有优势,并且有相当一部分“问题”有明显差距的话,那么就说这个实现的性能(或者说“平均性能”)不如另外一个。

可见其中可以做手脚的部分非常多。

上面已经说了,现实中绝大多数编程语言实现者没有影响硬件和操作系统的能力,因此编程语言实现一般会选择将其源编程语言所定义的模型,映射到另一个模型。这就是说“用另一个模型实现某个模型”。其性能主要取决于两个因素,一是所映射到的目标计算模型的性能上限(当然计算模型本身是没有性能 /性能上限的,所以这里指的是具体实现的性能上限),二是实现本身做这个映射的效果。

这里有个“性能上限”,这是我自己 coin 出来的词。指的是一个程序员,熟练掌握接化发,能够在特定的语言框架内,写出这个语言解决某个问题性能最高的程序。这个“性能最高的程序”所达到的性能,称为“性能上限”,这个程序员则称为一个“Surprisingly Smart Programmer”。当然这个性能依然是需要在特定的实现上。这里主要是解除了“约定俗成”中“平均水平程序员”的限制。
之所以提出“性能上限”和“Surprisingly Smart Programmer”这两个概念,是为了引申出“Surprisingly Smart Compiler”,或者“Surprisingly Smart Programming Language Implementation”这个概念,本来程序员需要使用其他计算模型来表达算法,但是编程语言实现允许程序员使用新的计算模型,如果编程语言实现可以做到“Surprisingly Smart”的话,那么就不需要“Surprisingly Smart Programmer”了。编程语言实现就可以发挥出目标计算模型的所有性能潜力。
(这俩词依旧是我 coin 出来的,为的是和已有的“Sufficiently Smart Compiler”这一概念保持一定的联系同时又有一定的区别,按照 C2 上的定义,“Sufficiently Smart Compiler” 只要“as fast as C”就可以了,“Surprisingly”更强调“上限”,你懂么,就是传统功夫四两拨千斤的本事)

再来说第二个因素,现实中不存在“Surprisingly Smart Programmer”,更不存在“Surprisingly Smart Compiler”。现实情况是——不同编程语言实现的智商(也就是上面所说的“实现本身做这个映射的效果”)各不相同,有些很低,有些还凑合,有些高一点。但是最高也高不过某个上限,这个上限目前大概在“Sufficiently Smart”这一级别,做到这一级别的都很少。这两个概念的意义在于思考实验,假设编程语言实现 C 基于目标实现 T 实现了一个新的计算模型:
* C 的“性能上限”不会高于 T 的“性能上限”。
* 如果 C 是一个“Surprisingly Smart Compiler”,那么 C 的“平均性能”也可以达到 T 的“性能上限”。
* 但是尚不存在“Surprisingly Smart Compiler”,C 最多只能做到“Sufficiently Smart”,也就是说两者的“平均性能”和“性能上限”都差不多。
* 如果 C 连“Sufficiently Smart”都做不到(很有可能),那么 C 可能连“性能上限”都比 T 差一截。这时就连“Surprisingly Smart Programmer”都不能使 C 的性能超越 T 。
* 但是 All is not lost. 无论 C 做成什么样,在特定情况下的性能是有可能超过 T 的平均性能的。
* 在“Surprisingly Smart Compiler”不存在的情况下,一般 C 和 T 所实现的计算模型差别越小,控制 C 和 T 的“平均性能”和“性能上限”的差距对 C 的实现智商要求越低。

目前主流编程语言中,平均性能和性能上限最高的均为 C/C++,C/C++ 的主流实现将 C/C++ 代码映射为目标硬件的汇编,并且会进行大量的优化变换,更别说这些主流实现还提供大量的非标准扩展,比如内联汇编在 UNIX 平台上基本是事实标准。也就是说在 C/C++ 的主流实现中,目标计算模型实现基本上是最高性能的,其实现本身又基本是最高效的,C/C++ 所定义的计算模型和其目标的差别也不大(尤其是考虑到非标准扩展)。
理论上其他编程语言实现可以在性能方面超越这些 C/C++ 的主流实现,但是目前 C/C++ 是三方面全面优势,其他编程语言得一个个推翻这三座大山,短时间内希望不大。还是要以和为贵,点到为止。

比如楼主给自己的 E 语言(大 E 了没有闪,说明很快啊)做了一个实现,映射为 Python 语言。按照刚才那一套民科理论,该 E 语言实现的性能就取决于实现本身的质量,和目标 Python 语言实现的性能。而要提高该实现的性能,也可以应用刚才的理论,比如改变目标实现,使用比 Python 主流实现 CPython “性能更好”的 Python 实现,并把基于这个实现做出来的 E 语言实现钦定为 E 语言的“主流实现”,这样按照刚才的定义就比 Python 性能更好了。或者提高 E 语言实现自身的质量,比如想办法检测代码中可以并行的计算,使用多进程或 GPU 来实现这些计算——大多数人写 Python 不会常用到这些东西的,依然可以在刚才的定义上完成对 Python 性能的超越。
> 对于自己的未来的焦虑情绪是要显著小于我们这边的吧。为什么呢?工资比较高,裁员不随意。在这样的情况下,他们对于产出高质量文章的金钱收益可能不看重。但中文互联网内容生产者就没这么悠哉游哉了吧。

这一点非常同意,但我不认为这是唯一原因,甚至可能不是主要原因。仔细看下我前面回复举的这些例子,很多人确实应该生活上没啥问题,但是另一个共同点是都在做着在特定领域很重要的项目,能接触到一手的技术,中国这种机会要少得多。所以我猜测可能和中国 tech 的整体技术水平落后,教育落后等有关系。但是我只猜测,我不做断言,我咬死了一件事,我要负举证的责任,我不给自己找这个麻烦。

再者,假设问题真的在所谓“生活环境的差异”上,那应该考虑的是改善生活环境,要求内容消费者向生产者提供回报可以,但是不是唯一的路,也不是最可靠的路,尤其是针对“生活环境的差异”上,这个完全治标不治本。也就是说可能我们能达成的共识就是这事其实还是“人民日益增长的美好生活需要和不平衡不充分的发展之间的矛盾”,这个的解决方案你可以去隔壁 https://v2ex.com/t/731552 这个帖子里面讨论,但是绝对不是你说的要读者向作者付出“代价”,我怎么看都觉得这么干只能加剧内卷,并没有任何的好处。

从普通消费者的角度来看,如果我有较大的对这类内容的需求,那我的钱大概率不够这么多生产者分(别忘了,按照这样的逻辑,你用的开源软件,看的免费视频,都要付出相应的“代价”)。一个,两个,五个,十个都无所谓,几十上百个怎么算?或者这么说,假如我的预算只够我每个月支持十个人,但是我受了好几十个人的帮助,我凭什么支持这特定的十个人,不支持那十个人呢?
而且这十个人的预算可能也是没有的——你有选择把钱花在哪的自由,你是选择“提高内容质量”呢?还是补贴自己生活呢?生产者焦虑,消费者就不焦虑?

再从生产者的角度看,“推动劳动法严格执行”帮助同样有限,至少解决不了 35 岁裁员的问题。
最后是完全没有帮助的部分:如果走商业化道路,考虑这些文章:
https://github.com/draperlaboratory/fracture/wiki/How-TableGen's-DAGISel-Backend-Works 这种文章能赚多少钱? https://blog.sumtypeofway.com/posts/introduction-to-recursion-schemes.html 这种文章,能不能出现? http://agg.sourceforge.net/antigrain.com/research/font_rasterization 这个,有几个人看? https://gist.github.com/fuglede/772402ecc3997ada82a03ce65361781b 这个呢?还有这个 https://fgiesen.wordpress.com/2012/02/21/half-edge-based-mesh-representations-theory

有很多东西,受众就那么点,给点钱是根本搞不上去的。你要是看了我那个列表会发现,里面完全赚不到钱的很少,但是能有持续赚钱的潜力的也很少。但是这就是在我眼中的高质量内容,这些在市场里面是玩不通的。
(这还不算是最高质量内容,他们讲了一个值得讲的事,并且把事讲清楚了,不过我的标准中最高质量内容是要求有新的东西的,比如 http://davidad.github.io/blog/2014/03/12/the-operating-system-is-out-of-date queue.acm.org/detail.cfm?id=2687011 raphlinus.github.io/ui/druid/2019/11/22/reactive-ui.html 这种东西能不能火就完全随机了,并且这种东西主观性极强,最后以马保国视频的形式火了也未可知)
同时你也可以想像一下,最赚钱的会是什么样的内容。

也就是说金钱根本就不是万能的,至少它不能指导人走向解放,相反,它推着很多人,甚至整个国家往火坑里面撞。你看看美国折腾金融和 tech,经济数字刷的不错,但是实际已经折腾得瘸腿了。

另外,中文世界不是没有优质内容,只是优质内容不在 CSDN 上。
举几个例子:
https://github.com/FrankHB/pl-docs
https://github.com/enkerewpo/OI-Public-Library
https://coolshell.cn
https://www.cnblogs.com/zkweb
https://www.iteye.com/blog/user/rednaxelafx
http://www.cppblog.com/lingjingqiu
http://blog.yufeng.info
https://mzh.io (这博主老兄也混 V 站)
https://blog.codingnow.com
http://www.skywind.me/blog
https://blog.csdn.net/pongba (这是十几年前的 CSDN 了)
http://ma-yidong.com
https://pingcap.com/blog-cn

另外一个很重要的优质信息源是最近强行刷了一波存在感的知乎,我就拿 Gamedev 一个细分领域举例:
https://zhuanlan.zhihu.com/letshoudini
https://zhuanlan.zhihu.com/pseudo-game
https://zhihu.com/people/netwarm007
https://zhihu.com/people/luo-cheng-11-75
https://zhihu.com/people/SuperPandaGX
https://zhihu.com/people/maxwellgeng
https://zhihu.com/people/mao-xing-yun
https://zhihu.com/org/wang-yi-you-xi-lei-huo-shi-ye-qun
https://zhihu.com/column/c_1165301835593723904
https://zhuanlan.zhihu.com/c_1144612976400072704

以上这些例子都有一个额外的标准,就是排除海外背景(当然具体履历不好验证)。我之所以后面挑 Gamedev 这一个领域,是因为这是中国少数不算瘸腿的领域之一。很不幸的是,如果换其他许多领域,在“排除海外背景”的限制下会很难。而就算上面这些 Gamedev 的内容,有相当一部分也是属于搬运、消化国外的内容。很多例子虽然没有海外背景,但是有外企背景。

移除“排除海外背景”这一条限制,可以解锁如下内容:

https://blog.poisson.chat
https://maskray.me
https://zhihu.com/column/marisa
https://zhihu.com/people/rainoftime
https://zhihu.com/people/li-a-ling
https://zhihu.com/people/ming-zi-zong-shi-hen-nan-qi
https://zhihu.com/people/tchen
https://zhihu.com/people/minchen.li
https://zhihu.com/people/jjgod
https://zhihu.com/people/iterator
https://zhihu.com/people/Metaphox
https://zhihu.com/people/innocent
https://zhihu.com/people/gfans
https://zhihu.com/people/edliu
https://zhuanlan.zhihu.com/c_1174996853811335168
https://zhihu.com/people/luo-xiu-zhe

我一直无法理解某些人对知乎的反感来源于哪。中国的大多数“通用社交网络”(这好像是这两天某人发明出的概念?)上面发生的一切都只是反映了真实的中国而已(这些社交网络的管理者也很真实)。当然不同的实例会有不同的侧重点,知乎的好处在于,他对好的那一部分的侧重比竞品要多一点(注意这个也是对比出来的 ...)。
一个很好的印证是“专栏”——首先,知乎的正确使用方式,从来都是在 PC 或者平板上,用 Google 搜索 "xxx site:zhihu.com",不过对于很多东西,这是不够的,还需要再加上 "-site:zhuanlan.zhihu.com",因为专栏有大量的机构号和营销号,一般只会污染搜索结果。但是同样,上面也有很多例子也是来自专栏的。所以同一个产品,可以同时呈现 CSDN 和 LtU 两个极端的属性。所以我更倾向于把专栏当作一堆独立的网站的集合,其中一些是垃圾站,另外一些是宝藏站。
我对知乎的看法在这里还有一点: https://v2ex.com/t/588817

上面所有这些例子里面,有几个做到了网红级别的,基本确定是从网络获了利了的。但是很多没做到网红级别,基本确定是没获利 ...

另一个对比是视频内容,我的观察,无论是 B 站和 YouTube 上,视频内容完全不恰饭的很少。猜测有二:一是视频内容的生产成本普遍更高(但不代表视频内容的价值比其他形式更高),二是网络视频这种形式在普及的过程中就和恰饭绑定上了。B 站的内容生产者插广告和官方分成比较多,但是我没怎么关注过技术方面的视频,看的主要还是娱乐为主。YouTube 有很多用 Patreon 、Ko-Fi 的,偶有一些规模较大的作品,但是涉及到技术的话,有两大块最重要的,一个是有学术背景的公开课之类,一个是各大会议的 talk,基本是没有恰饭内容的(当然 talk 就免不了给自家产品做广告的)。
我随便找了几个大点的 YouTube 频道,取其订阅者和视频平均播放量的最小值(是的有的频道做到了订阅数比平均播放要少 ...),然后看 Patreon 的赞助者数目,没有发现有超过 1% 的。
这个其实很有意思,首先就 YouTube 上 Patreon 的普及率可以认为这个已经做到了基本成熟了,然而这个比例意味着一个十万人的大频道,预期的收入最多也就每月一千刀左右,再考虑到这是在国外,并且需要持续产出高质量视频才能维持这个收入。一千刀月收入在大多数发达国家是无法维持生活的。我另外有个猜测,就是五十万是我认为的“小圈子”的上限,所以我把“大频道”的分界点划在了十万人,也就是一般“中上”(pun NOT intended)水平的内容生产者大概也就能预期在十万粉左右。
至于五十万这个数字来自于哪,这是我最喜欢的 B 站 up 主稚嫩的魔法师的粉丝数。
说到 Patreon,又说到稚嫩的魔法师,Patreon 这个词应该是来自 Patron,表示支持的意思。在历史上有俩地方,一个是宗教上的 Patron Saint,另一个是 Patronage of the Arts,指君主或商人对艺术家、科学家的赞助来产出“高质量内容”。类似的东西今天还在继续,就是各种大学和研究院。原则上他们产出的内容应该是质量最高的。所以上面的什么教授的博客啊,公开课啊什么的都没有广告,都是有人 patron 的结果。不过我还没找到中国的教授有博客的。

当然啊,有能力来做 Patronage 的,也是社会的 1%。不过实际这个钱的来源显然并不是 1%,公立大学的资金来源于政府财政,所以可以理解为已经有人拿了你的钱,替你“付出”给“优秀内容创作者”了。
@Newyorkcity

> 『我怎么记得很多产出优质内容博客压根就没有广告』请举几个实例?

这个其实没有意义,要举有广告的例子有一堆,要举没广告的例子也有一堆。举例子只能证明存在这样的东西,并不能说明任何其他事情。

至于例子就太多了:
https://eli.thegreenplace.net 各方面都不错
http://worrydream.com 苹果前设计师,但是思维比较跳
http://okmij.org/ftp 别说广告,连 CSS 都没有几行
http://smallcultfollowing.com/babysteps 做 Rust 编译器的
https://blog.sumtypeofway.com 讲 Recursion Scheme 的那几篇文章不错
http://wingolog.org 做 JS 编译器的
https://pharr.org/matt/blog Graphics 大牛,PBRT 作者,非常意外的还是 ISPC 的作者
https://www.joelonsoftware.com SO 创始人
https://herbsutter.com Herb Sutter,老 C++ 大牛了
https://raphlinus.github.io 做了很多 Rust 方面的工作
http://matt.might.net 入门文章写的比阮一峰强
https://blog.regehr.org 做编译器验证的
https://kcsrk.info/blog Multicore OCaml 开发者
https://martinfowler.com hmm 我对他的领域也不是很熟但是有几篇文章慢不错的
http://scottmeyers.blogspot.com 这个也是,老 C++ 大牛了
https://therealmjp.github.io/posts Gamedev 大牛
https://thume.ca 他自己都说了“interested in all sorts of technology” ...
https://www.agner.org/optimize 又逮到一个没 CSS 的,这人不知道干什么的,但是在汇编优化方面做了很多工作
https://travisdowns.github.io 同样是汇编优化,特别喜欢用 foot🦶 note,足控必备
另外,SO 的 Peter Cordes 在 x86 标签下同样有一堆好东西
https://fgiesen.wordpress.com 应该是 RAD Game Tools 做性能优化的,这货在 Gist 上面还一堆好东西 https://gist.github.com/rygorous
https://branchfree.org SIMD 编程
http://pcwalton.github.io 应该也是 Rust 的主要开发者之一
http://joeduffyblog.com 前 Midori 的开发者,Midori 系列文章很好
http://www.codercorner.com/blog PhysX 开发者
https://blog.acolyer.org 带你读 Paper

上面基本都是个人的,还有一大优质内容来源是各种开发团队的官方博客,这种一般要么就没有广告,要么就是给自己打广告,或者干脆就是招聘广告,但是突兀的无关广告很少,依然太多:
https://code.visualstudio.com/blogs VSCode 官方博客(其实一般,但是有个别非常出彩)
https://webkit.org/blog WebKit 官博,大多数都是更新日志,但是偶尔会有一读一上午的长文
https://blog.janestreet.com 这个有缘人都懂的 ...
https://devblogs.microsoft.com/cppblog 微软 C++ 团队( MSDN 前几年好像大改了一次,很多老博客都没了,只能去 archive.org 翻)
https://devblogs.nvidia.com NVIDIA 官博
https://blog.cloudflare.com CloudFlare 官博
https://hacks.mozilla.org Mozilla 官博
https://v8.dev/blog V8 官博

还有一个来源是学术界:
https://queue.acm.org ACM Queue,列表有自己的广告,但是文章阅读界面很干净
https://blog.sigplan.org ACM SIGPLAN 官博
上面已经有几个教授的 blog 了,剩下很多散的东西,课程参考,校友页面,行政人员,什么都有,只是在 edu 域名下,举几个例子:
graphics.stanford.edu/~seander/bithacks.html
web.archive.org/web/20081012113943/http://www.eecs.harvard.edu/~greg/cs256sp2005/lec15.txt
willamette.edu/~fruehr/haskell/evolution.html
theory.stanford.edu/~amitp/GameProgramming
www.cs.utexas.edu/~bornholt/post/memory-models.html
cse.taylor.edu/~btoll/s99/424/res/ucdavis/CAGDNotes/CAGD-Notes.html

还有一些是广告很少,但是内容同样一等一的(要找有广告的反而比较难 ...):
http://www.adriancourreges.com Graphics
https://www.realworldtech.com 可能是普通人所能接触到的最硬核的硬件分析,还有个挺老派的论坛,里面有个好像挺有名的人叫 Linus Torvalds,你们听的什么 Linus 喷 AVX512 啊,Linus 想买 M1 啊之类的,来源就是这,不是 LKML

我这只是在我极不完整的优秀文章列表里面随便划拉划拉而已,我这还有个一千人的列表就不折腾了 ...
一 派 胡 言

说中文互联网内容质量差,是相对英文来说的(其他语言还不会所以不知道),先得把这个隐含的意思给搞明白。差不是凭空差,是在对比之下显得差。

然后再去考虑,为什么英文要好一点呢?难道是英文用户点广告点得多么?我怎么记得很多产出优质内容博客压根就没有广告( Google Analytics 和 affiliate link 更常见)。StackOverflow 倒是有几个(跟 V 站差不多的量),不知道有几个人点过 ...

然后楼主说中文互联网内容质量差只是因为没人点广告 ...
2020-12-04 22:15:47 +08:00
回复了 black11black 创建的主题 问与答 C++ STL 中查找速度最快的是什么数据结构?
vector 只能整数 index 这只是个接口问题而已,你自己往里面存个 pair 自己写函数查也可以
C++ 社区的意思是,所有涉及到 pointer chasing 的都慢,所以 std::list 是垃圾,vector FTW
所以如果数据小的话,就直接用 vector 线性查,可能比其他数据结构还要快,这个叫 flat map (不是 Monad bind 的那个 flatmap )
另外,vector 还会加一个 SBO 的优化,这样就可以完全避免内存分配,这个叫 small vector

unordered_map 在性能方面的问题在于它是 chaining 实现的,内存性能一般不如 open addressing,所以有时候会用 open_addressing 的实现,这个叫 dense_map
unordered_map 的优势在于迭代器稳定,map 的优势在于 ordered access

至于查字符串还有专门的数据结构

至于楼主这个,你得自己 benchmark
2020-12-04 19:51:47 +08:00
回复了 zxCoder 创建的主题 问与答 关于技术问题的搜索技巧
虽然这个关键词并不是最好的,但是你要接受有些东西网上就是没有的事实。

> But perhaps that’s been the story of life. That does happen on occasion and I’ve noticed where something you just can't find on the Internet.
2020-12-04 19:04:22 +08:00
回复了 gzf6 创建的主题 程序员 快 2021 年了, UI 库为什么还要依赖框架?
#2 > 如果公司未来更换技术栈,那原来的库基本就废了,没人想去迁移的

真的是带快所有前端的带好事,正好重写一个,KPI 就有着落了。
2020-12-04 18:42:43 +08:00
回复了 Braisdom 创建的主题 程序员 Java 运算符重载(Operator Overloading)原理
这贴感觉开错了 ... 这标题就注定了下面必然会以 OT 为主 ...
优先级是个老问题,个人偏向于放弃优先级,强制括号
S-expr 也行,不过我习惯看中缀是改不过来了,我喜欢 S-expr 是因为——目前基本所有中缀运算符的语法,都必须硬点一部分符号给运算符用(就不说还要钦定优先级了),S-expr 只占括号和空格,其他符号都可以解放出来,甚至包括 hyphen

C++、Java 的运算符重载(以及函数重载)的问题很大程度也是钦定的东西太多了
2020-12-04 13:27:47 +08:00
回复了 vevlins 创建的主题 程序员 协程跟 cpu 有关系吗?
这评论都什么乱七八糟的 ...

C++ 最新的协程标准应该是 stackless 的,根据一个微软的家伙吹的,是所有协程中最 flexible,最 powerful blabla 的(原话忘了)
C 的协程一般都是 stacked 的

楼主的理解大致没啥问题,你把这东西放编译器上就是 stackless coroutine,放汇编里就是 stacked coroutine,放内核里就是线程

至于什么是“CPU”的“关系”,我认为楼主的意思是一个 CPU 必须要提供一套能做到图灵完全的基本操作,超过这一范围的就属于“guanxi”。从这个角度来说,函数调用,补码,浮点运算,向量运算,虚拟内存等,甚至是基本的整数运算,都是现代 CPU 的“关系”。John Gustafson 没有关系,所以 posit 没戏。

另外反正评论区已经足够群魔乱舞了:
这东西其实就是先让一部分计算执行完后,再执行什么计算的问题,所以我认为协程是一个中国特色社会主义理论问题
GvR 牛逼的不是他开发了一个语言,而是他开发了一个有很多人用的语言
你说要做 GvR,这话跟问怎么成为扎克伯格是差不多的
2020-12-04 04:50:54 +08:00
回复了 bigbosser 创建的主题 随想 最近对哲学挺感兴趣的,很有感悟
这评论不就挺真实的么……
2020-12-03 01:39:06 +08:00
回复了 rzfyu 创建的主题 问与答 你们能够接受结婚的时候,租钻戒结婚么?
2020-12-03 01:33:11 +08:00
回复了 oneforallsoft 创建的主题 职场话题 国外职场吐槽
@sagaxu 没有听说过 Tech 有工会,只听说过有组织工会的尝试: https://news.ycombinator.com/item?id=18750070

哦,我见过的有一个例外,就是在查资料时发现某个我比较喜欢的 RTS 开发商出了这么一码事: https://kotaku.com/developers-at-one-french-game-studio-have-been-on-strik-1823833426
不过这是在法鸡 ... 相关链接还指向了这么一个网站: https://www.stjv.fr/en/news-en/
(顺便 Gamedev 应该属于比较惨的那种,反正 CDPR 的人今年应该没得安生)
有 ZFS 内味了
前两天把新买的 SSD 格式化成了 ZFS,不过我主要看中的是 ZFS 今年新加了 zstd 压缩
据 ZFS 自己报告,80G 的虚拟机镜像,用了 73G,压缩到盘上只有 54G
其他数据也能节省 10%-20% 的空间
2020-12-02 22:00:02 +08:00
回复了 yzbythesea 创建的主题 问与答 装机大佬们,选 AMD 还是 Intel ?
@natforum
民 主 政 治
太真实了...
2020-12-02 21:12:03 +08:00
回复了 echowuhao 创建的主题 反馈 V2EX 好像管理员不严格?
正常的社区就是差不多的样子,绝大多数成员遵守规则,管理员基本没啥存在感。
管理员存在感很强的才是有问题。
买企业盘。早就说了消费级硬件基本都有这样那样的毛病,在某些人眼里就是垃圾。
2020-11-29 13:56:03 +08:00
回复了 DoctorCat 创建的主题 程序员 印象中有没有被开源软件颠覆了的商业产品?
太好找了,楼主用啥发的这贴子?要是十五年前楼主会用啥发这贴子?
IE 已经被死死钉在十字架上了。然后也是最近的事情,总体可以认为是“开源”的 Web,又把 Flash 从窗户扔下去了。
Git 不仅颠覆了一票商业产品,连一堆开源自己人也都顺便颠覆了。
1 ... 42  43  44  45  46  47  48  49  50  51 ... 123  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3525 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 45ms · UTC 00:44 · PVG 08:44 · LAX 16:44 · JFK 19:44
Developed with CodeLauncher
♥ Do have faith in what you're doing.