touch fish第002期
使用 jegdb 来调试内存相关 crash How to compare signed and unsigned integers in C++20? Algorithms for Modern Hardware it is realy dope 深入理解 C++ 链接符号决议:从符号重定义说...
使用 jegdb 来调试内存相关 crash How to compare signed and unsigned integers in C++20? Algorithms for Modern Hardware it is realy dope 深入理解 C++ 链接符号决议:从符号重定义说...
标准库里的map和unordered_map,从某种程度上说,性能其实不是很行 list 首先说list,不支持随机访问,每个节点都是分散的,在大多数情况下每一个遍历的步骤都是cache miss 当前热点如果真的不怎么访问这个list,随便用,如果热点访问list,找死了 map and hashmap map里面是一个红黑树,组织起来的就是list,插入和搜索其实都是parti...
编译加速上的一些经验和分析方法,主要针对c++。 实际上在了解完make和ninja之后,发现要加速单translation unit的编译,应该最小化他要做的事,例如include what u want,使用pimpl,使用forward declaration等等。 一些compile optimize的经验 c++项目编译优化 C++服务编译...
What is Dns 简言之就是将Domain和ip相对应,类似一个电话簿 如果看toy implement, 我这里用py写了一个很简单的。 How it works 首先明确一下,整体的逻辑可以抽象程一个CS模型,但是这其中涉及到多个服务器, 最后client看到的就是一个req->response 下述四个服务器其实就可以看作一个dns解析流程,具体步骤可以看Ref里...
ls iostat iostat 是一个用于监控系统输入/输出设备负载情况的工具,它可以用来收集并显示系统的存储输入/输出统计信息。这可以帮助你识别磁盘 I/O 子系统的性能瓶颈。以下是一些基本的 iostat 命令和它们的用法: 显示所有设备的统计信息 你可以使用 iostat 命令而不带任何参数来显示所有设备的统计信息。这将显示自系统启动以来的统计信息。 ...
不必要的初始化 有一些make_xxx的初始化,这种如果有原生数组之类的,可能会帮你memset,包括数组的resize 可以看一下catch2作者关于vector性能的一篇文章 所以,如果只是要一个buffer的话,尤其是动态分配的内存的话,其实malloc是更优秀的解法 auto buffer_size = 5*1024*1024; std::unique_ptr<void...
c++ details CppCoreGuidelines c++ practicing hacking cpp, 资源比较多 isocpp, cppcon fluentcpp, seems no update in 2023 cpp resource collector ...
Touch Fish 第001期 每周摸鱼看到的文章,集中在这里,方便查看,也方便分享 C++ compile 编译加速 cache2的作者的blog,讲编译加速的,还没看 C++ runtime Branch Optimisation 分支预测加速的,也还没看 c++优化 cache2的作者的...
decorator 无参装饰器 def decorator(func): print('processing decorator') def wrapper(): print("before") func() print("after") return wrapper @decorator def test(): print("test") 输...
xattr usage mac如果从网上下载下来的app + 没验证开发者的话,需要自己处理一下,删除隔离属性 sudo xattr -r -d com.apple.quarantine /Applications/Clash\ for\ Windows.app