exch4nge

exch4nge

V2EX 第 30085 号会员,加入于 2012-11-29 14:47:49 +08:00
今日活跃度排名 5558
根据 exch4nge 的设置,主题列表被隐藏
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
exch4nge 最近回复了
52 天前
回复了 zcion 创建的主题 C++ c++多线程如何配置环境看线程的调试信息
vscode 断下来后,默认会显示多个线程吧 https://code.visualstudio.com/docs/cpp/cpp-debug#_multithreaded-debugging
要是 linux 建议先学 gdb
232 天前
回复了 wisefree 创建的主题 C++ 请教大家一个架构的问题
建议先用一般思路实现一版本,然后再做这种设计,比对性能。性能这东西基本都得靠实践。
一般思路:找个线程池实现,如 folly 的 cpu thread pool ,内存分配用 jemalloc 之类的
232 天前
回复了 wisefree 创建的主题 C++ 请教大家一个架构的问题
绑核了就 spin 查消息吧,用什么 zeromq ,io 唤醒得有多慢。
单个模块一个线程/核心?这么设计会更快么?不会有某个模块处理慢么,不加点线程/核心?
切换线程可能把 cache 都丢了,有些情况下还不如一个线程跑完整个处理
249 天前
回复了 kerb15 创建的主题 NAS Raid0 速度慢,是硬盘问题还是硬盘柜的问题
可能跟 block size(?) 之类的分区参数有关系?
@Chipmunker 是 node
@f1ynnv2 #14

vscode ssh 上去的时候看 OUTPUT (输出)窗口会有详细的日志,第一步分析日志发现直接报一些系统版本有关系的错误,我的系统是 CentOS 7 所以提示的是 glibc 跟 cxx 版本过低

找到日志里的一个路径,是 code-xxxxxxxxxxxxxxx 结尾的,上机器找到这个目录,这个文件是个 script ,打开会发现有检查 /tmp/xxxxxxxxxxxx 这个路径有文件就 skip os version check 之类的操作,手动创建这个文件

然后一般这个目录的上一级目录有个 node 可执行文件,这个是需要 patch 的,我用了自己安装的 glibc 跟 cxx 的路径,用 patchelf 打了补丁,打完执行 ./node 检查看看能否运行

再次尝试用 vscode ssh 上去(每次先退 vscode 再把相关进程都 kill 掉),还是会有错误,仔细看日志发现,某个可执行文件执行不了,报错里提到也没找到 musl 什么的,然后自己再安装了 musl

然后再次尝试 vscode ssh 上去,就可以了,右下角会弹出警告框,但是功能没问题。

如果你能直接升级操作系统的 glibc 之类的版本的话,那应该更简单,不过我没试过,也在网上看到很多升级 glibc 后遇到很多问题的事情,就没敢动,只是找个其它位置安装的。
正好昨天遇到了,简要说就是装 musl ,装 glibc ,再用 patchelf 解决了
@andyJado #25 好奇试了下,切换到没有 submodule 的分支时,会提示 warning: unable to rmdir 'a': Directory not empty ,分支切换成功但是 submodule 对应目录还在
虽然我也没了解透彻,尝试强行回答下,参考 https://en.cppreference.com/w/cpp/language/decltype

*p 是一个表达式,符合第二种 decltype ( expression ) ,第二种分成下面三种情况

a) if the value category of expression is xvalue, then decltype yields T&&;
b) if the value category of expression is lvalue, then decltype yields T&;
c) if the value category of expression is prvalue, then decltype yields T.

然后 *p 属于 lvalue ,所以是引用。参考 https://en.cppreference.com/w/cpp/language/value_category
在 settings 里搜 accept suggestion ,调整那几个看看有没有效果
不是做这个方向的,强行答下,希望能有帮助
多线程开发,有很多锁/条件变量之类的,能正确使用其实不容易。相关可以学多线程安全的数据结构,或进一步无锁的并发数据结构。学会用 perf 之类的工具优化性能,如减少 cpu cache miss ,减少对象复制开销,编写对编译器更友好的代码等等。也可以学 simd 指令集与应用。学 OS 与硬件,知道写的代码会经过哪些 syscall ,网络方面比如如何减少 user space 到 kernel space 的内存复制等
大部分做到了解原理以及会用的程度就很不错了,比如你要需要一个并发的 Queue ,到底用哪个,为什么选择用那个等
当然最重要的还是问题分析与设计能力,解决实际业务需求,能够设计出合理的架构,得出这种“我需要并发 quque 去实现某功能”
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3440 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms · UTC 10:46 · PVG 18:46 · LAX 02:46 · JFK 05:46
Developed with CodeLauncher
♥ Do have faith in what you're doing.