V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  secondwtq  ›  全部回复第 46 页 / 共 121 页
回复总数  2420
1 ... 42  43  44  45  46  47  48  49  50  51 ... 121  
2020-11-24 02:09:02 +08:00
回复了 wslzy007 创建的主题 信息安全 vps:一种安全访问 ssh 的方法
前段时间在 GitHub 上看到个项目: https://github.com/skeeto/endlessh
大致思路是故意打开 22 端口,并且接受所有连接,但是不进行真实的数据交换,就在那拖着
Safari 就不会有这个问题(
2020-11-24 01:51:59 +08:00
回复了 GTD 创建的主题 Java jdk 8 怎么和 jdk 15.1 差距这么大?
分代 GC 需要加 Write Barrier 跟踪不同代对象之间的相互引用,G1 GC 相比 Parallel GC,Write Barrier 涉及的指令更多(实际并没有触发 GC,而是多执行了 10%-20% 的指令)。

Epsilon GC 作为 placeholder,并不需要 Write Barrier 。但是直接用 Epsilon GC 效果并不会更好,原因应该是 C2 犯了傻逼,在 JIT 时把一个判断子类型的检查提到了外面,正常情况这个检查不会被触发,但是只要被触发很有可能失败,所以 JIT 的函数没法用,只能用 OSR 的。OSR 的循环并没有 JIT 更优化,特别是 CompressedOops 这时又占了很多指令,用 -XX:-UseProfiledLoopPredicate 可以把这个行为纠正回来( JDK 8 好像没有这个参数)。再加 -XX:-UseCompressedClassPointers 可以进一步减少指令数。
(或者可以不用 -XX:-UseProfiledLoopPredicate,换成 -XX:-UseCompressedOops,但是这样还是会跑 OSR 循环,效果不如 JIT 好,尤其是变量 t 的访问没有优化)

至于为啥倒霉的是插入排序,因为只有插入排序才需要在 inner loop 里面折腾引用值的赋值。别问,问就是天灭 Type Erasure,退 Java 保平安。祝楼主早日获得新生。
2020-11-19 21:46:28 +08:00
回复了 1sm23 创建的主题 Apple IBM 分析:苹果用 M1 芯片, 1 年可省 25 亿美元硬件成本
M1=A14Z+++,你觉得研发能花多少钱?
2020-11-19 21:17:12 +08:00
回复了 GTD 创建的主题 Java jdk 8 怎么和 jdk 15.1 差距这么大?
你这代码根本就没法用来做 benchmark
我记得 Java 做性能测试要用一个专门的库。JVM 会有一个 JIT 的策略,决定什么时候优化哪里的代码,不同的 JVM 版本这个可能会变。要测试性能,你得把这个拉平了。
如果最后在同样的优化等级下还是有 regression 的话,那恭喜楼主可以给 JVM 贡献代码了。
说起 Proton,最近微软也在折腾 Mesa,要在 Windows + DX12 上面跑 OpenGL + OpenCL
https://www.phoronix.com/scan.php?page=news_item&px=OpenCL-OpenGL-DX12-Progress
2020-11-18 12:42:05 +08:00
回复了 wangyzj 创建的主题 macOS 哪位老哥能解释一下 Rosetta 的实现原理?
关键词 Dynamic Binary Translation
2020-11-17 21:01:28 +08:00
回复了 noe132 创建的主题 浏览器 Speedometer2.0 跑分请使用 匿名模式跑分
这事就挺纠结:
我们假设 Speedometer 这 benchmark 是靠谱的
所谓”靠谱“,是指”反映‘实际’场景“,从而能够用来评估”实际性能“。
我看貌似就跑了一堆各种框架的 TodoMVC,看上去还算靠谱

但是‘实际场景‘里,本站大多数用户都会装几个甚至几十个扩展。开了之后跑分两位数百分比的往下掉
关了之后跑分能上去了,但是这明显不是’实际‘场景,又有什么意义呢(除非你是浏览器开发者,或者苹果这样的垂直集成者)
#23 是正解,JS 这语言和政府一样,有天然的垄断性,所以其实很多时候是作为目标语言。但是 JS 从设计之初(如果这破玩意真的有“设计”的话)又是作为编程语言来设计的,所以 JS 有直接的编程语言和间接的目标语言两面(有意思的是,JS 无论作为编程语言,还是作为目标语言,都挺烂的 ...)。
前端圈开始是把 JS 作为编程语言来用,后来发掘出了目标语言的潜力,这才有了各种 source-to-source transformer,后来又有了各路 Script 。TypeScript 作为各路 Script 中的一个实例,虽然以兼容 JS 为核心设计理念,在作为“JS 的‘超集’的同时”依然可以理解为“以 JS 为目标语言的船新的编程语言”(忒修斯:阿嚏!)

如果把目标定在 JS 上的话,那 Babel 则是一个静态的 Rosetta,Reason 相当于 ocamlopt,TypeScript 类似 C 语言。在 naive 领域,目标语言是具体 ISA 的机器码,CPython 实际上是“用 C 实现的一个脚本语言解释器”,从目标语言的角度来看已经可以和 TypeScript 有一定的可比性,所以说 CPython 汁己就已经是 TypeScript 了,同时还有对等的 Ruby 、Perl 和一些无 JIT 的 Scheme 实现等。( CPython 放在 JS 上应该是“用 JS 实现的一个脚本语言解释器”——因为 JS 作为目标实在是太慢了,所以除了练手项目之外很少见,可以说前端在应用层“AOT 编译"占绝对主导)

和 JS 有类似情况的语言其实不少,C 是最接近的之一,有很多 C 的”超集“,以及一些和 C 完全不同的编程语言是编译到 C 的,同时 C 也广泛作为通用编程语言使用。还有 JVM Bytecode/MSIL/LLVM IR 等,不过这些语言本身设计就是目标语言 /中间语言,并不能作为编程语言。
2020-11-17 20:31:26 +08:00
回复了 3dwelcome 创建的主题 Apple AppleM1 的傲娇,市面上没一个能打的游戏芯片,包括 RTX 3090。
结论其实没错,不过这个帖子总体挺让人无语的
这么说吧,30 系就是老黄强行拔出来的,不知道具体出于什么目的(刚出那会乱七八糟的说法太多了,狙击主机,收购 ARM,狙击 AMD,存心耍猴 ... 或者单纯为了感谢客户向玩家送出一份“大礼”),但是 30 系各方面整体都挺烂的,不是一个好的对比对象。
另外 PC 平台上现在几乎所有芯片都喜欢往功耗曲线最右边拉,最近两年尤甚(俗称“官超”),虽说如此,楼主哪怕挑 RX 6000 系来比,都比 30 系要好 ...
2020-11-17 20:05:07 +08:00
回复了 yi0322 创建的主题 硬件 要是以后各大厂商都搞 SOC 那升级性能会不会很贵?
当然不会,比如牙膏厂很早之前就开始搞了,但是消费级价格基本稳定甚至在降
2020-11-14 12:33:04 +08:00
回复了 scriptB0y 创建的主题 Linux OS X 与 Linux 桌面发行版的快捷键冲突有什么好的解决办法吗?
我自己把终端模拟器的快捷键改成 Meta 开头了
终端模拟器还是比较简单的,没法全部改,比如 VSCode,我可以把编辑器里面的复制改成 Meta+C,但是拿查找框里面的快捷键没辙,还不如不改
总结就是 Linux 要改快捷键建议改源码重新编译 Chromium,GTK 等基础软件...
你没发现这次就是原来的壳子换了个零件么
很明显厨子是想先赶紧把东西上了,并没想出新产品,大的肯定还在后面
往好处想,这次这东西这么设计有可能就是为了方便 NMB 用
2020-11-11 23:37:10 +08:00
回复了 gdw1986 创建的主题 Python 谁能给仔细讲讲这个递归该咋理解吗?
backtracking 了解下
我现在最好奇的不是坚果 M1 这个芯片到底咋样,而是楼主体系结构的老师是哪位大神,我觉得他 /她的学术观点一定会很有意思。

不过我可以确定的是,计算机处理的数据并非无源之水,楼主体系结构老师的观点也不是。
从一只鸽子的视角来看,计算机处理数据的流程大概是 输入 => 处理 => 输出。在主流的体系结构中(包括 ARM ),数据可以存储在寄存器、主存或外部设备里,而 ISA 是管理这整个过程的接口。也就是说,写程序的思路和把大象放进冰箱里是差不多的,分三步,第一步是把大象啊,啊不是,把数据从冰箱里,啊不是,从某个地方(寄存器、主存或外部设备里)取出来,然后处理数据,然后再把处理好的数据放到另外的某个地方去。在计算机高速不断把大象放进冰箱,即处理数据的过程中,这三步中的每一步都会影响处理的性能。

现在你有 32 位的数据需要处理,处理的速度和处理器运算性能是差不多的。
现在你有 32KiB 的数据需要处理,处理的速度不会高于 L1 缓存的带宽。
现在你有 320KiB 的数据需要处理,处理的速度不会高于 L2 缓存的带宽。
现在你有 32MiB 的数据需要处理,处理的速度不会高于 L3 缓存的带宽。
现在你有 320MiB 的数据需要处理,处理的速度不会高于主存的带宽。
现在你有 32GiB 的数据需要处理,处理的速度不会高于存储设备的带宽。
数据量越大,处理器核心流水线之外的限制就越严重,因为处理器在上百万的周期中一直闲着思考人生,和刷 V 站的网友一样,不知道该做些什么。

现在楼主说好像苹果又改变世界了,好像现在不需要走主存了,我圣·蒂姆·库珂·玛丽亚直接就可以凭空生成耶稣 ... 啊不大象 ... 啊不数据 ... 然后凭空就想出了宇宙的真理,但是最后被 V 站野蛮的网友钉在了十字架上 ...

真是悲伤的故事。
1 ... 42  43  44  45  46  47  48  49  50  51 ... 121  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2571 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 43ms · UTC 00:25 · PVG 08:25 · LAX 17:25 · JFK 20:25
Developed with CodeLauncher
♥ Do have faith in what you're doing.