V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  lmshl  ›  全部回复第 1 页 / 共 24 页
回复总数  476
1  2  3  4  5  6  7  8  9  10 ... 24  
3 天前
回复了 MoeMagicMango 创建的主题 程序员 小 心 任 何 二 次 接 手 的 代 码
这代码写的挺不错的啊,没看出来哪里有问题
```
import { fromEvent } from 'rxjs';

const clicks = fromEvent(img, 'onload');
clicks.subscribe(x => { <你的业务逻辑> });
```
不要自作聪明发明那些不可维护的代码,你能想得到的场景,早已有无数前辈替你趟过坑。
等你哪天觉得 “RxJS 不过如此,我还有个更好的想法” 的时候,再发明也不迟(顺便发几篇论文)
版本答案:RocksDB (与其他 leveldb family 产品)

解析:203 亿个 bloomfilter 在 p=0.01 下所需的内存空间约为 23.75GB 。实际上,去重所需的空间会少于 203 亿,所以在这个内存空间下,实际 p 值将进一步降低。

大部分人可能对 bloomfilter 的使用存在误解,他们只考虑在只有 bloomfilter 单一算法存在的前提下来解决需求,这显然是错误的。现代数据库对 bloomfilter 的应用主要是用来降低 miss key 对磁盘 IO 的影响。如果 bloomfilter 认为这个 key 没有出现过,那么这个 key 确实没有出现过。当 bloomfilter 认为它可能出现过,那么出现的概率为 1-p ,此时需要回表二次确认(磁盘 IO )。

假设一个典型的重复度为 10 倍的 200 亿数据表文件,在这个空间下,p 值会低至 1e-20 。

那么对这个文件去重,总共会发生 200 亿次内存 bloomfilter 读取,20 亿次 bloomfilter 写入+磁盘顺序写入,以及 180 亿次磁盘随机读取。(考虑到数据库对磁盘的批量写入优化,sstable/memtable 这个数值将会被巨幅降低)

假设一个重复度为 0.1 倍的 200 亿数据表文件,在这个空间下,p 值变化不大。

那么对这个文件去重,总共发生 200 亿次内存 bloomfilter 读取,180 亿次 bloomfilter 写入+磁盘顺序写入,以及 20 亿次磁盘随机读取。(同上)

根据网上其他人做的吞吐量测试,rocksdb 在现代硬件条件下可以稳定达到 10k*rows/s 以上的写入性能,或>1GB/s 的写入吞吐量。乐观地估计,6.2TB 的文件应该能在 2 小时到 2 天左右完成去重。
143 天前
回复了 Gabrielle70 创建的主题 程序员 学一门 IT 技术: 精学和泛学哪种效率高?
我没有泛学也没有精学,我就直接开写
反正你泛学精学的目标也是最终变成自己的技能,能写得出来。
那为何不直接开始写。

学习学习,学只是一半,习是另一半。只学不习永远学不会
先把 Explain 贴上来再说
187 天前
回复了 dsvshx 创建的主题 Java Grpc 服务优化 GC 的一个问题,请教一下大佬们
一个大部分连续的 bytes 卡住 gc ,听起来还是很离谱的,除非你给出详细测试步骤,不然很难证明你的前提是对的。
即便你前提成立,也可以简单粗暴的直接上 ZGC 来解决,不需要你重复发明任何东西。
188 天前
回复了 nnegier 创建的主题 程序员 Java 后端有用 Kotlin 的吗?
我是精通 Scala ,同时也熟悉且写过万把行 Rust ,所以换到 Kotlin 对我来说算是能力上封印了。
至于论坛里没写过几行 coroutine 的开发来说,对鞋城和虚拟县城的理解不一定强于前端仔( async/await ),现在谈 VT 取代 coroutine 有点言之过早
189 天前
回复了 nnegier 创建的主题 程序员 Java 后端有用 Kotlin 的吗?
最近一个后端项目:ktor + kotlinx + flow api + coroutine + context receivers + arrow.kt
JDK 21 开 Generational ZGC 和 Virtual Thread (作为 coroutine 的 blocking dispatcher )
我算啥成分?
196 天前
回复了 hepin1989 创建的主题 Java 大家用上了 ZGC 了吗?
上生产了,童叟无欺
```
env:
- name: JAVA_OPTS
value: "-Dconfig.file=/app/application.conf -XX:+UseZGC -XX:+ZGenerational"
```
198 天前
回复了 linuxsuren 创建的主题 程序员 你现在能做几个标准的引体向上
最多的时候负重 5kg 做 10 个(电脑包+mbp 以及其他杂物,差不多 5kg 左右)
负重 15kg 做不到 4 个
https://v2ex.com/t/1022551
《每天 1 块钱,1 分钟,彻底治好了我的腰肌劳损和肩关节疼痛》
亲测有效,腰肌劳损腰痛 10 年,肩关节痛 3 年
我精通 JavaScript/TypeScript/Scala/Kotlin 等语言
还精通 Pure-FP 与 Reactive Stream
各位精通 PTSD 患者来喷我吧 🐶
我们写函数式的,完全不需要“防御性编程”。
我们就正常发挥,除了同门之外别人都看不懂我们 Pure FP 代码🐶。
关键是,自己维护起来还超 tm 轻松。
209 天前
回复了 YugenFring 创建的主题 程序员 kotlin 可以完美平替 Java 吗?
我现在的 Kotlin 技术栈:
Ktor ( http4k 也挺好)
Exposed + HikariCP
Arrow
kotlinx.serialization/coroutine/flow
编译器启用 context receive 语法扩展,凑合当 effect 用
JRE21 开 ZGenerational 和 VirtualThread
写起来体验还是可以的

之前也在知乎回答过此类问题
https://www.zhihu.com/question/641140617/answer/3375582454
@ptsa 图不图的不重要,总之单杠引体向上,练就完了
首先,不要试图挑战 CAP
然后,我们再谈其他的

你唯一能做的是用同步协议尽可能快的达成最终一致,但你无法始终保证一致性
211 天前
回复了 YugenFring 创建的主题 程序员 kotlin 可以完美平替 Java 吗?
说实话平替 Java 有点过于低估 Kotlin 了
如果不能改变上游的话,最简单的方法就是搞一个 bloom filter index ,postgresql 原生支持这种 index 。
如果只能用 mysql 的话,也可以在 mysql 里自己维护实现 bloom filter ,不是很难。
然后做分级索引,合并成一个大的 bloom 。

虽然会有 false positive ,只要控制在 1%以内,你就可以以极高的效率查出哪个码从来没出现过。仅在命中 bloom 的时候去做二次校检。
把二维码的位数搞大一点,比如 128-bit 不就不会重复了么?🤔
为啥要设计的这么复杂?
UUID 也就 128-bit, 100 万亿 UUID 中重复一次的概率是百万分之一。
买双色球都没中过头奖,不如直接用 UUID 编码到二维码了
219 天前
回复了 formonica 创建的主题 OpenAI 怎么指挥 GPT4 来写论文?
我用 GPT4 生成了一万多字的英文论文🐶
首先,你得有自己写出来的能力,然后 GPT 可以帮你写的更快更好。如果你自己都不知道想写什么,也没能力去验证和评价 GPT 生成出来的内容,那确实 GPT 无法帮你代写论文。
1  2  3  4  5  6  7  8  9  10 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3679 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 40ms · UTC 04:18 · PVG 12:18 · LAX 21:18 · JFK 00:18
Developed with CodeLauncher
♥ Do have faith in what you're doing.