V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  oaix  ›  全部回复第 1 页 / 共 7 页
回复总数  134
1  2  3  4  5  6  7  
106 天前
回复了 rbaloatiw 创建的主题 Go 编程语言 请教一个竞争问题
CPU 乱序执行。

> 在 x86-64 (x64) 和 ARM64 (AArch64) 处理器架构中,乱序执行( Out-of-Order Execution )是用于提高处理器性能的一种技术。两种架构在乱序执行和内存模型方面有所不同,其中 ARM64 的内存模型通常被认为比 x86-64 更加“激进”或更弱。

x86-64 和 ARM64 的内存模型对比
x86-64 (x64) 内存模型:

强内存模型:x86-64 处理器通常有一个较为强的一致性内存模型。这意味着大多数内存操作(特别是读写操作)的顺序与程序中的顺序是一致的。写入操作一般不能在读取操作之前发生,也不能跨越其他写入操作。这种强内存模型使得编写并发代码相对容易。
乱序执行限制:虽然 x86-64 处理器执行乱序执行,但它在内存操作的乱序方面受到限制。处理器会自动维护内存操作的一些顺序,特别是写-读依赖关系,不需要开发者过多使用内存屏障。
ARM64 (AArch64) 内存模型:

弱内存模型:与 x86-64 相比,ARM64 使用了更弱的内存模型。这意味着处理器可以以更加激进的方式重新排序内存操作。比如,写入操作可以跨越读取操作,甚至不同线程的内存操作顺序可能会被打乱,这在多线程编程中可能导致不可预期的结果。
乱序执行更激进:ARM64 的乱序执行在内存操作上更为激进,需要更多地依赖于显式的内存屏障来确保内存操作的顺序。这使得 ARM64 的性能可能更高,但也增加了并发编程的复杂性。开发者必须通过 dmb 、dsb 等指令或使用内存屏障来控制内存操作的顺序。
总结
x86-64 的内存模型更强,乱序执行更保守:在大多数情况下,x86-64 处理器会确保内存操作顺序与程序代码顺序大致一致,使得并发编程相对简单。
ARM64 的内存模型更弱,乱序执行更激进:ARM64 处理器允许更多的内存操作乱序执行,因此在并发编程中需要更加注意内存屏障的使用,以避免数据一致性问题。
因此,ARM64 的乱序执行比 x86-64 更加激进,也更依赖于显式的同步操作来确保内存操作的正确性。
106 天前
回复了 kkbear 创建的主题 MySQL 咨询个 SQL 数据去重的问题
如果不用追求 100%准确,并且时间段最小粒度是天。可以每天算一个 hyperloglog ,存起来。查询的时候把对应日期的 hyperloglog 合并起来。
这个数据有些诡异:

吞吐=并发/平均响应时间

但从数据上来看平均响应小的框架,QPS 反而不高。
2023-06-27 18:45:31 +08:00
回复了 oaix 创建的主题 全球工单系统 网易免费 163 邮箱的 IMAP 和 SMTP 服务器无法登录了?
已恢复
2023-06-10 11:27:00 +08:00
回复了 mannixSuo 创建的主题 程序员 对 Java 泛型的顶级理解
只要我看不懂的代码:过度设计,只要看不懂我写的代码:辣鸡🐶
2022-05-02 15:54:06 +08:00
回复了 tlmn 创建的主题 程序员 有没有办法控制 jetbrains 家产品的排序方法?
可以用 String Manipulation 插件
2021-06-07 11:35:26 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
@AndyAO 看了下这个 PR 的讨论,如他们所说,这里面有 2 个默认值的概念,1:如果没有传 --decorate,那么默认值就是 auto ; 2:如果传了 --decorate,但没有指定 decorate 的值,那么默认值就是 short 。很明显,当前文档说的是情况 2,但其实情况 1 更符合直觉(如你的 PR 所修改的),如果能更进一步,在文档里面把这两个地方都说清楚可能更棒。
2021-06-07 11:19:32 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
@AndyAO 👍
2021-06-02 09:34:21 +08:00
回复了 Yukee798 创建的主题 问与答 请教前辈们一个正则表达式
^\[(?:|(?:[3-9]|[12][0-9]|3[0-7]|#)(?:,(?:[3-9]|[12][0-9]|3[0-7]|#))*)\]$

如果需要匹配空的[],可以用这个
2021-05-31 09:57:52 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
理解文档的意思了,默认值的意思是:--decorate 等效于--decorate=short
2021-05-31 09:51:31 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
@AndyAO #4 好问题,这里我也不知道原因,感觉是文档有问题,实际默认值是 auto 。
2021-05-31 09:33:33 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
https://git-scm.com/docs/git-log

--decorate[=short|full|auto|no]
Print out the ref names of any commits that are shown. If short is specified, the ref name prefixes refs/heads/, refs/tags/ and refs/remotes/ will not be printed. If full is specified, the full ref name (including prefix) will be printed. If auto is specified, then if the output is going to a terminal, the ref names are shown as if short were given, otherwise no ref names are shown. The default option is short.
2021-05-31 09:28:44 +08:00
回复了 AndyAO 创建的主题 问与答 如何在 PowerShell 中捕获到 git 命令中返回的全部信息?
git log --decorate=full
2021-05-20 09:34:44 +08:00
回复了 hello2060 创建的主题 Java Spring TaskExecutor 问题
new ThreadPoolExecutor(
1, // core
1, // max
0, // alive
TimeUnit.SECONDS,
new SynchronousQueue<>(),
new RejectedExecutionHandler() {
@Override
public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) {
// ignore
}
}
);
mac 的全局 emacs 快捷键是我最喜欢的部分
是在找 @MockBean 吗?
2021-02-06 22:39:57 +08:00
回复了 amiwrong123 创建的主题 程序员 三次握手和欢迎套接字的问题?
> 三次握手的第一次和第三次都是发送给服务器,而且都是发送给了服务器的“欢迎套接字”?
是的
> 那它怎么知道该传给 欢迎套接字 还是 连接套接字呢?
根据来 src 来区分,如果已经建立连接了,就发送到“连接套接字”
> 欢迎套接字和连接套接字是处于 运行在服务器主机上的两个进程吗?
不是,“连接套接字”是通过在“欢迎套接字”上调用 accept 调用返回的。
2020-12-31 16:19:28 +08:00
回复了 Flicker 创建的主题 问与答 gradle 多模块项目怎么分开进行自动化部署?
如果用的 jenkins,可以使用 changeset 判断哪个子目录改了
https://www.jenkins.io/doc/book/pipeline/syntax/#when
2020-12-30 13:34:41 +08:00
回复了 Flicker 创建的主题 问与答 gradle 多模块项目怎么分开进行自动化部署?
基于 tag 触发,tag 名字为“子模块名称 /版本”,可以从 tag 名中推断出想要部署哪个子模块
2020-10-23 11:42:15 +08:00
回复了 weitch 创建的主题 问与答 世道沧桑,人心不古,如今还有坚持不做 app 的网站吗?
@jdhao #25 soda
1  2  3  4  5  6  7  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1236 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 44ms · UTC 18:07 · PVG 02:07 · LAX 10:07 · JFK 13:07
Developed with CodeLauncher
♥ Do have faith in what you're doing.