为什么面试官喜欢问某一门语言(比如 go 或者 Python )的内存回收机制?

2022 年 4 月 27 日
 a523

我不明白的,如果不了解内存的回收机制,对写代码有什么影响吗?

我已经写 python 8 年了,也不清楚 python 的 GC 具体细节, 但是还没有碰到内存泄露的问题。 是不是有 GC 机制的语言,不会发生内存泄露?

或者面试官仅仅只是依此来判断某个人对某门语言花了多少心思?

18295 次点击
所在节点    Python
164 条回复
secondwtq
2022 年 4 月 28 日
别说 tracing GC 的语言,就连 C/C++ 这种人肉内存管理的都存在换一个 malloc 库提升 xx% 性能的说法 ...
wtdd
2022 年 4 月 28 日
你不会认为你写了 8 年 python 而且面试的是 phthon 职位,就一定在之后能只写 python 吧?
Suddoo
2022 年 4 月 28 日
@glfpes 你用个几把 gc 啊,你懂个几把 gc 啊,gc 跟租房有几把关系啊,你脑子有毛病吧,傻逼!脑残!
Suddoo
2022 年 4 月 28 日
@glfpes 是你个傻逼说自己工资高,可能你工资也就几千块、还跑出来装逼

还业务问题,业务问题你调个几把 gc 啊,先把你代码写写好,再去看是不是 JVM 的问题,别特么代码写得一坨屎,然后瞎几把调 gc ,每个人都像你这个样,公司都给你调倒闭了
ericguo
2022 年 4 月 28 日
楼主提了个很好的问题,我想可以用 Alan Kay 的这句:“People who are really serious about software should make their own hardware”来回答。GC 可能的确不是直接用到语言细节,但是程序员是追求细节控制的职业,对细节那么不敏感的话,很难想象能写好程序。
leverestfish
2022 年 4 月 28 日
很有意思的讨论,感谢楼主“抛砖引玉”,顺便借楼问一下 Python 的 GC 机制有什么学习的途径吗,CSDN 和公众号的东西感觉质量不行…官方文档容易看吗?
chocotan
2022 年 4 月 28 日
我讨厌的是不少人连 javadoc 都写不好就大谈特谈其他的东西
Trim21
2022 年 4 月 28 日
怎么有人在 gc 帖子里工资来,房东去的,结果反而自己先破防了😅
monetto
2022 年 4 月 28 日
@Suddoo 老哥,是不是了解清楚了,再来论坛比较好? 20 年在某东任职,用的是 JDK6 + CMS (物流订单系统,别说现在升级了,这玩意一共几十个项目 200w 行代码谁敢升级)。印象里有一次,log 内存泄漏了,当时表现就是这个项目两周挂一次(线上为 2C + 4G 的机器,部署了三台)。后来 dump 下来之后,一点点分析,发现内存都是创建在 Meta Space 里面的。然后一点点找,本地复现 GC 过程,才分析出来的。
大厂里面哪有那么新的 JDK ,还 ZGC ,G1GC 都很少有用的。项目一天流水几百万,谁敢动?

互联网公司是赚钱的,不是用来磨练软件技术的。
如果线上出现 OOM ,或者内存泄漏了,那你不能第一时间定位问题,这个季度绩效评级就有你好过的。
NeroKamin
2022 年 4 月 28 日
怎么讨论讨论着有人还破防了呢
lmshl
2022 年 4 月 28 日
惭愧,我写了十几年代码了,至今不懂 GC ,但好像从没写出过内存泄漏......
而且也给别人代码和社区代码贡献过解决内存泄漏问题的 PR( https://github.com/zio/zio-zmx/issues/369),也在生产环境看 jvisualvm / asyncprofiler / heap-dump / thread-dump 。似乎不懂 GC 并不影响我日常开发工作😏
glfpes
2022 年 4 月 28 日
@Suddoo 呵呵,真的是破了大防了,我到底哪里戳到了你的痛点啊?
@Livid 辛苦站长把这种没事就人身攻击的用户降级下吧。
patrick1star
2022 年 4 月 28 日
@glfpes 我看了讨论,不是你 63 楼先说人家“你这种心态找不到好工作的,早点从中学课堂毕业的”

74 楼又给人家扣了个“低端码畜”的帽子吧

@Livid
glfpes
2022 年 4 月 28 日
@glfpes 其实,我只是给了他客观的评价。
或许你觉得他不是那么低端,那也无所谓,那是你的判断。
我也不会在网上客气,想什么就说什么。但是我是不会随便骂人傻逼的,这是最基本的素质。
ClericPy
2022 年 4 月 28 日
这帖子突然这么火, 估计楼主也没想到吧... 后面几楼讨论着画风突然就变成: 你要承认我是对的, 不然我就跟你争论下去

没什么为什么, 从原因分析, 大概是面试官也找不到什么好问的, 所以就拿高频面试题随便聊聊, 说这是八股不至于, 因为就像一些开放题谈一下对面向对象的认识一样, 不需要背答案, 主要是看看语言组织能力和知识面广度, 同样薪水自然想招个更值的.

GC 问题肯定不是说没遇到过就不用关心的东西, 总要避免遇到了无从下手, 上学时候大家都是学 C 起步的, 转 Python 和 Go 对 GC 总该好奇一点吧.

如果觉得不希望面试官问这些日常罕见的东西, 那就把项目经历写的详细一点, 因为目测大多数面试官也不喜欢问底层或者语法, 更倾向于针对项目经验提出各类问题来验证经历是否属实, 以及日常解决问题的思路是否科学.

偏底层偏语法或者偏算法这些问题主要还是没啥别的可问, 只能尬聊了... 我就是那种想聊项目或者业务但无从下嘴, 只能随便找点常见问题提问对方.
11232as
2022 年 4 月 28 日
主要还是方便确定问题所处领域吧,看到报错时不至于两眼摸黑
hambers
2022 年 4 月 28 日
社区里不是很多海外的同行么,谁来解答下 海外大小厂是否会问 python 的 gc 问题喽,足以区分是国内风气还是说行业共识
lmshl
2022 年 4 月 28 日
@hambers
我自己的面试经历是,基本上没有被问到 GC 八股文,只有一家流媒体三面提了一句,我说完全不了解,但三面也让我过了......

因为我们 fp 基本上不用变量,很少用可变数据结构,申请 /释放清晰,哪里来的 GC 问题
haah
2022 年 4 月 28 日
Joexjx
2022 年 4 月 28 日
某人先说自己工资高,是房东,骂人,然后自己破防了,我不说是谁。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/849548

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX