duangsues.is_a? SaltedFish
60 subscribers
609 photos
6 videos
91 files
562 links
🌶🐔🐟 duangsuse 的日常
尤其喜欢发些奇奇怪怪的东西
和转载别人的东西
Download Telegram
Forwarded from dnaugsuz
Dalvik 不清楚,反正 HotSpot 什么的所有 GC 都是纯正的 tracing 算法,循环引用不会泄漏内存

JDK 的 WeakReference 是为了应付应用的特殊情况的,比如说 static 的(perm)拿来存 instance 级别的东西,就可以用 WeakReference
Forwarded from dnaugsuz
是第二版吗?我也看过 🤔
Forwarded from dnaugsuz
真阴性…… 我还以为这个裙讨论话题突然变『学术』了呢…… (跑
这里有啥意味呢?是指对象真的可回收?
Forwarded from dnaugsuz
别人说 Python 也是 Rc,然后有个专门的什么内存模块还可以解决循环引用的问题,PHP 上循环引用好像是等满了再扫描的(之前都是 refcount)
Forwarded from dnaugsuz
复制一般要求更大的堆…… 反正我也没写过 GC 就是了。

Ruby MRI 之前是用空闲链表,然后扫描算法比 Lua 简单一点(Lua 是三色实际上四色,Black/Gray/两种 White,White 是垃圾),还不是最开始 Lisp 的那一套,就是 BFS 啦。

后来我听说有什么半空间算法什么伊甸堆…… (弱代假说)

复制主要还是类似磁盘碎片整理一样整齐化内存使用(也可以很好的提升性能和缩减总体内存使用),缺点是比较慢(所以不能用来做终生代和永久代的收集,当然我不知道永久代是怎么回事,成熟代也可以用),实现要更新引用也复杂,据说一些 GC 实现用的是对象 Handle,二重查找,所以不必麻烦地更新每个引用?

如果不能理解内存里放的内容,就无法正常复制移动其中的对象了,就是说以前的 ExactVM,知道哪里是针对要移动对象的引用,可以更新句柄

GC 是很复杂的东西,至少说可调节的参数很多吧…… 何况现在还有什么 C4 什么 G1 的…… 我连 Serial, Parallel, CMS 都搞不懂

这时候我想想,我不就是个应用编程的吗?我想这么多干什么……
Forwarded from dnaugsuz
我的天啊,这作者也真是牛
我之前一直以为 C++ 程序员什么都强,看啥都比 Java 程序员清楚,没想到居然有人沉迷 C++ 模型居然连当今 Java 的 GC 方案都弄错,难道是真的吗……
Forwarded from dnaugsuz
其实可以写成网格的形式,就会很直白,如果你用 takeUntilElemtakeUntilEqual 都可以定义出来一个实现(当然一定要用 DP 的话也不是不可以)
Forwarded from dnaugsuz
其实也不能算是 DP(也不分什么子问题不子问题的……),就是这样
Forwarded from dnaugsuz
missing 代表 xs 缺了东西,added 代表 ys 比 xs 多了的东西,填充这个网格,是从上到下从左到右的,不过理论上不应该访问第 n 列第 n-1 行之前的项目

我们知道在处理某一个项目时不可能是不看后继项目的,因为 abc, ac, aebc,他们一个是 delete, 一个是 insert, 可是第二项都不是 b 了,这就是说需要根据任何一个可能的后继项目来判断到底是删还是填,删了多少、填了什么

abcd, 删除 bc 变成 ad,如果我们只在处理 b 的时候看 c,肯定啥都找不到,最终会输出错误的结果,所以是说任何一个可能的后继都要找(最极端的情况是除了末尾的项目全都删了),不过也不一定很麻烦,因为我们可以用后继集合

所以这个算法其实就是一个大生成循环(只要 xs, ys 都还有下一项),然后只要接受到的项目不相同,就去找他们的某个共同后继 c,那 inserted / deleted 就很容易通过这个 c 算出来了

因为这个完全没有必要用 DP 写(它只『需要』填充 m=n 的格子……),所以就说不算是一个 DP 的问题……
Forwarded from dnaugsuz
DiffAlgorithm.kt
5.7 KB
我写出来一个实现
Forwarded from dnaugsuz
就是那个支持『lookahead 1』的 Feeder 写得很不爽,总感觉是在贴代码

一共 166 行,好像没有 bug,有些逻辑不是很清楚,想必风格在 Java 程序员里还是很奇葩(我写了很多 interface……)
基本上快用了三个小时……
Forwarded from dnaugsuz
>>> Diff.diff(listOf(1,2), listOf(1,3,4))
1 (2) [3,4]
>>> Diff.diff("abc", "ac")
a (b) c
>>> Diff.diff("abc", "acd")
a (b) c [d]
Forwarded from dnaugsuz
#bug 辣鸡 Kotlin
Forwarded from dnaugsuz
算法本体(我都快估计不出来 xs, ys 最低限度需要哪些接口了,好像就是 Feeder<E> 算了……)
Forwarded from dnaugsuz
理论一张图,实现跑断腿
Forwarded from dnaugsuz
#bug 虽然的确是我纸张了…… 但是 Kotlin 的 type inference failed 也不对吧……
Forwarded from 永久封存 | Yuuta 台 | 😷 #Pray4Wuhan (Yuuta ⠀)
https://t.iss.one/FuckU_GaoShangXuan/1079 儿子 / 生 / 性病母 / 倍感安慰