V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  kneo  ›  全部回复第 23 页 / 共 66 页
回复总数  1316
1 ... 19  20  21  22  23  24  25  26  27  28 ... 66  
2024-11-29 23:22:40 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333

> 那这种测试结果本身基准就不平 得出的结论也就看看就好

额,怎么说呢……测试结果,看的就是某个语言使用某种实现能得到什么样的性能。我们只要客观的理解数字就可以了。

只有带入过多感情,认为有些数值高的赢了,某些数值低的好像输了,才会纠结“公平”。
2024-11-29 23:11:42 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333 我不认为不相似就没有可比性。性能测试的重点之一就是从一个方面提供不同策略不同实现之间的差异给人做参考。
2024-11-29 23:07:09 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal 我完全理解 goroutine pool 在生产环境里的作用。这东西 Java 用了几十年了,什么好说的。

但是如果 goroutine 的成本真的便宜到几乎免费,我们大多数时候是不需要因为“性能问题”而使用 pool 的。使用 pool 的主要用例应该是间接限制 goroutine 所对接的外部资源。

如果还是因为 goroutine 本身的性能原因而使用 pool ,我认为就语言实现层面还是差点意思。

回到这个帖子所引用的原文,我认为它至少从一个方面回答了到底在哪还差了点。
2024-11-29 22:57:01 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333 额,好吧,我还是维持我的观点。
2024-11-29 22:49:34 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333 抱歉,没能理解你说的 golang“没有队列等机制确保负载不爆阿”。

大家都是 green thread ,都需要去分配资源去占用原生线程。

你的说法听起来是在表达 golang 的调度机制不够优秀。但你说因此要 Java 换原生线程来比好像还差点说服力。
2024-11-29 22:36:04 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333

> 虚拟线程是真实线程内用队列处理任务 其它的语言用事件驱动也是差不多道理 对标 golang 应该是 goroutine+channel

goroutine 也是在原生线程里 run 的啊……
2024-11-29 22:27:18 +08:00
回复了 huangz 创建的主题 程序员 赠送几本《Redis 应用实例》
三本也太少了……前面的挺努力了,我让了吧。
2024-11-29 22:20:15 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@james122333

> 如果是这样 那应该是 java 纯用线程不用虚拟线程对 go 开 goroutine 比较 这样两者相比才是正确的

Java 的虚拟线程就是对标 goroutine ,这两个都是 green thread 。我不太明白为什么不应该比较。

> 因为文内 go 的使用方式就是错的 使用对方法 go 也是可以大幅降低内存使用

关于文中 Go 的使用方式错误能否具体点?
2024-11-29 22:13:48 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal

> 即使争吵, 我也真心祝你技术越来越进步, 这样可以避免大家以后更多争吵

谢谢了。不过避免争吵不是靠谁技术进步,而是平等和包容的讨论问题。技术进步是为了保护自己下次别吵输了。
2024-11-29 21:23:51 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal

> 说到这个 blog 的结论,我建议你先看看 blog 的标题吧:
> How Much Memory Do You Need to Run 1 Million Concurrent Tasks ?

您可下找到重点了。看标题,人家测的就是 Memory ,很明显测一百万是为了知道每个 goroutine (以及其他语言里常见的并发模式)的平均开销。这是这个测试的唯一目的。这个测试结果,不代表 Java 比 Go 强,也不代表 Java 在高性能的表现比 Go 强,连 latency 和 cpu 这种数据都没有,这个测试就是很单纯的一个内存测试,它并不是一个完整的性能测试,但它绝非无效测试。

具体来说,它提供了一个对比数据:一个 goroutine 的内存开销大概是 2KB ,Java virtual thread 大概是 1KB 。

这个测试就是这么简单纯粹,没有一点问题。后面也有人提出了“golang 的 goroutine 是预分配固定大小 2kb 的内存”,和测试完全相符。

您:

> 毫无意义的测试, 却顺便拉踩, 捧 java 踩 go, 实在看不下去了我才必须出来澄清下.

遇到质疑,您的回复是:

> 说句不好听的, 你懂吗? 你懂多少?
> 系统, 底层知识不了解, 只知道看个半吊子脑残的老外的 blog 就在那人云亦云? 还很自豪?

感情我只要“同意”就是人云亦云?和你意见不一样就是“底层知识不了解”?您了解底层也没看您说出来“golang 的 goroutine 是预分配固定大小 2kb 的内存”这种话啊。

还“半吊子脑残老外”这种话,您也说得出口?礼貌吗?看你现在说话收敛了点,冷静了?自己回头看自己的回复脸红不?

> 就是你们这种人多了, 才把技术讨论搞得乌烟瘴气!

信不信,如果你不出现,这个贴子早就在讨论为什么“一个 goroutine 的内存开销大概是 2KB”。

看你最后几个回帖码字不少,虽然观点我不敢苟同,但能看到到你的微妙变化。不再一一针锋回复了。
2024-11-29 19:12:13 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@CloveAndCurrant 啥也拿不出来在这嘴硬,别误人子弟了。

你知不知道有些错了一辈子的老油条,从一开始就错了,还一直觉得自己是对的,遇到别人振振有词“我们就这么叫”。

我再重复一遍:Goroutine 不是协程。

这句不是写给你看的,因为你老了,改不了了。但总有年轻的有心的。他们会知道你是错的。
2024-11-29 18:50:30 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@CloveAndCurrant 你是不是不认识英文 cooperative ?协程的“协”对你也有点理解困难?你一张嘴说“工程领域就叫有栈协程”,你在工程领域算老几?我还有 WIKI ,你除了你认为你还有毛能拿出来的?
2024-11-29 18:22:16 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@yuan1028 朋友,你这才是明灯,这才叫“技术干货”。
2024-11-29 18:20:39 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@CloveAndCurrant

goroutine 不是协程不是我定义的,我前面有 wiki 链接。

coroutine 的 co 是 cooperative ,goroutine 是 preemptive 。

哪怕加上“有栈”的定语,它也不是协程。典型的有栈协程应该是 lua 的 coroutine 。
2024-11-29 18:16:30 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@CloveAndCurrant 实际生产环境的性能表现当然会有各种干扰,没有任何单一指标能决定一切,但不意味着我们不去对单一指标进行量化。Benckmark 的作用之一就是去除变量。

go 和 java 的优劣固然不能一概而论。但“Java 的 virtual thread 比 go 的 goroutine 成本还要低”这点,我认为是结论。
2024-11-29 18:07:31 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@CloveAndCurrant 有栈没错,但 goroutine 不是协程啊……
2024-11-29 17:52:06 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal

> 我说 goroutine 成本低是对比进程线程,我说 goroutine 比 java birtual thread 成本低了吗?

我说你说了吗?

你在这刷一天,连个结论都说不出来,我现在告诉你“Java 的 virtual thread 比 go 的 goroutine 成本还要低”,我说了,你反驳我下试试?

你还“对比进程线程”,你和 Java 8 对比啊?人家测的是 JDK 21 。你要是虚心点看看人家帖子还能学点东西。

说人家“捧 java 踩 go”,你要像人家一样实事求是贴代码贴数据一步步写结论,没人和你杠。你在这瞎喷还夹带私货,顾左右而言他,还说自己“有技术干货”。

你知道吗,我“实在看不下去了”,我“必须出来澄清下”。
2024-11-29 17:39:25 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal #69

管 goroutine 叫协程是你的叫法,我们社区不这么叫,别给我们抹黑。叫错了就是叫错了,非在这嘴硬?能不能实事求是点?

你说“看了眼 wiki 里支持协程的语言列表里也有 go”,我也去看了下,

https://en.wikipedia.org/wiki/Coroutine#Go

However, goroutines are not coroutines (for instance, local data does not persist between successive calls).

怀疑你有没有点基本的信息检索能力。怪不得看不懂别人的测试结果。

嘴硬+阅读能力差,您这 buff 叠满了。
2024-11-29 17:32:45 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal #66 差点被你逗笑了。因为语言的底层实现不一样,所以你就抱怨不公平?还真是委屈你家的 Go 了……咱们以后不比了。
2024-11-29 17:22:43 +08:00
回复了 hez2010 创建的主题 程序员 运行 100 万个异步并发任务需要多少内存
@lesismal

数据你不会看是吗?都画成图了你也看不懂是吗?

你一口一个 go 协程( goroutine 不是协程),说 goroutine 成本低,原帖的结论之一是 Java 的 virtual thread 比 go 的 goroutine 成本还要低。用最简单的代码,得出最简单的结论。

我也不需要说测试结果仅供参考之类的。我可以告诉你,这就是结论。请问你拿什么反驳?你在这显摆你那破库?你那破库证明了 goroutine 比 virtual thread 的成本低了吗?

你那破库顶多能说明,生产环境里,哪怕 goroutine 比 java 的 virtual thread 成本高,也一样能实现高性能应用。当然能啊,Java 没有 virtual thread 不也主宰行业二十年?你拿出来的玩意,对这个讨论一点帮助都没有。除了自我营销和认知水平有限之外,我想不出来你在这捣乱的理由。

你这种水平的作者,写的库我不也 care ,但是得放在心里,避个雷。我刚才说看了一眼是逗你玩的。你这种库我看名字就知道干啥的。你还真以为帮你贡献点击量了?
1 ... 19  20  21  22  23  24  25  26  27  28 ... 66  
关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2483 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 22ms · UTC 15:09 · PVG 23:09 · LAX 07:09 · JFK 10:09
♥ Do have faith in what you're doing.