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

2022-04-27 13:10:33 +08:00
 a523

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

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

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

16799 次点击
所在节点    Python
164 条回复
dji38838c
2022-04-27 18:23:24 +08:00
筛选总要问东西的,
考公务员为什么要考脑筋急转弯?
否则考什么呢?微分方程?高级英语?那更难嘛
Suddoo
2022-04-27 18:30:59 +08:00
八股文背得熟,CMS 现在已经不用了,再去背 csdn 上那些 JVM 内存分布,“调优”技巧还有意义吗? zgc 停顿到 1ms 以内你没有参与开发,graalVM 你没有参与开发,结果面试的时候,你说自己对 gc 非常了解…..
f64by
2022-04-27 19:16:01 +08:00
不考八股,不考底层,那面试其实就没什么好问的了,干脆直接卡年龄、卡学历筛人算了
glfpes
2022-04-27 19:19:56 +08:00
gc 真的很重要,如何选择符合业务场景的 gc ,是很重要的。
曾经有一次,gc 经过优化后,系统的 p99 延迟降低了 60%,可以瞬间完成“性能优化”okr 。
glfpes
2022-04-27 19:23:46 +08:00
@Suddoo 你这种心态,恐怕找不到什么好工作。
这个世界永远都是连续的。天天以非 1 即 0 的理想环境来考虑问题,那什么事也办不成。
早点从中学理科课堂中毕业吧。
Goooooos
2022-04-27 19:30:37 +08:00
知识这种东西不是需要时候才去学的,你觉得现在不需要就不去了解,难道真要遇到了才面向 google 编程吗
mxT52CRuqR6o5
2022-04-27 19:37:24 +08:00
gc 语言解决内存泄漏需要重点关注的是怎样写能 gc ,怎样写不能 gc
关注 gc 是怎么做的对解决内存泄漏帮助不大
bazingaQAQ
2022-04-27 19:56:14 +08:00
我面实习都要问 gc 和 jvm 调优,感觉这是必问环节了
Suddoo
2022-04-27 20:20:59 +08:00
@glfpes 别扯淡了,就因为你会背 gc 八股文,就能找到“好工作”,你做的工作又对社会产生了什么价值,解决了老板的什么问题?

并不是所有面试官都很傻逼,喜欢问 gc 八股文,有些老板只想招一个能干活的人过来干活就行,而不是满口底层原理、框架内核,结果一个接口写了一个星期……每个人都这样,公司都给整倒闭了
neutrinos
2022-04-27 20:50:44 +08:00
@glfpes 做体力工作和做智力工作是不一样的,不能像你说的这样一概而论(狗头
wupher
2022-04-27 20:54:20 +08:00
其实大部分情况下确实没啥用。

面试官也是网上搜些题,觉得难,自己也不清楚,于是就拿来做考题。能说的非常清楚,让自己也能听的懂,就觉得这个人技术不太差。(起码理解了,表达也没问题)自己还学到了东西。我当年刚毕业那几年,被弄去面试别人就用这招。从结果来看,有成功的,也有坑的。

现在基本不用,上班都这么多年了,碰到过无数坑。拿几个具体难点和业务场景,让对方给个解决方案思路。再结合他的思考讨论具体细节实现就基本知道了。

但也有牛 B 吹上天,架构很合理,真写起来一堆小毛病(有些还是大毛病)的主(其实从某种情况下,我自己也是,看到 3 ~ 5 年前的代码,经常也会有让自己脸红的地方)。这种情况下能看到他之前代码是最让人放心的。

于是 Senior 的代码要求能提供 github 或者 gitee 账号,能看到之前的代码是什么样子的。感兴趣的话,会认真挑来研究,也学到了很多东西。

这是上家公司被弄去专门面试官的时候。
chuanqirenwu
2022-04-27 22:58:36 +08:00
招一个懂 GC>=招一个不懂 GC 的,就这么简单。
yogogo
2022-04-27 23:02:42 +08:00
@MoYi123 #4
应该是 hashmap 的源码比较简单,很多博客书籍都有写
Buges
2022-04-27 23:14:20 +08:00
@Biwood 屏蔽程序员对内存管理的感知是一票自动 gc 语言的主要设计目标,如果需要程序员(除极少数情况)关心内存回收的话,这些语言的设计就太失败了。
问 gc 最主要的目的就是卷,(按理说)如果你连 gc 细节这样绝大多数情况下不需要了解的内容都了解,这就能体现出你在这门语言 /技术栈中浸淫的深度(当然也会导致背面试题应试实际水平一般的人取得竞争优势)。
另外 gc 和手动内存管理也不是一个领域,主要写 c/cpp/rust 的人大概率不了解也不需要了解自动 gc 相关的内容。
jinliming2
2022-04-27 23:23:23 +08:00
有 GC 机制的语言也会发生内存泄漏,通常与全局变量有关。
你的确不需要深入了解 GC ,但当问到你 GC 概念的时候,你能告诉他你了解一些概念。
前两天看一个视频里的老哥说的我比较认同:你说你会写代码吧,你会,能解决问题吧?有时候能解决出来,有时候解决不了,这个就是最大的问题。当你在实际岗位上的时候,你有时候行,有时候不行,那谁敢用你啊?所以核心问题就在于没有你不行的时候。
如果哪天真碰上了个内存泄漏问题,找你来调查,你上来一句“内存泄漏是啥意思啊?硬件问题吗?”这哪行啊!
所以,即便你对 GC 并没有深入的了解过,但你至少知道里面有哪些概念,哪天真碰上了,找你来调查,你能快速的找到解决办法,这才是面试考察的重点。
securityCoding
2022-04-27 23:25:59 +08:00
不用深入,了解即可,如果工作几年这些都没去了解的话说明根本没看过书
glfpes
2022-04-28 00:15:21 +08:00
@Suddoo 在你这种找工作都费劲的低端码畜眼里,GC 的作用=面试八股文,那我觉得对你来说的确研究 GC 无法提升什么生产力。
SteveWoo
2022-04-28 01:37:19 +08:00
做过高并发服务就知道了。
xuanbg
2022-04-28 06:51:08 +08:00
@buried 这让我不由得想起一件趣事:某民科煞有其事的说用古瓷器碎片磨成粉造假古董瓷器,就可以让假货通过碳 14 检测。
Suddoo
2022-04-28 07:55:33 +08:00
@glfpes 你想多了,我工作随便找,并不是所有人都像你,因为没有项目经历,为了找份工作,背了成千上万的八股文,还不一定能拿到 offer ,整天 gc gc ,到头来也只是一个 api caller 而已、这就是你眼里的“高端”工作?

看你整天把 gc 放在嘴边,也没见你发明什么 gc 算法,zgc 、graalVM 也没见你贡献一行代码

就背了几个八股文,就懂 gc 了?你确定你背八股文的速度跟得上人家源码更新的速度?

就你这背八股文的时间,人家中学生都写一堆作品了。时代变了,资产阶级垄断知识的时代一去不复返了

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

https://ex.noerr.eu.org/t/849548

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

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

© 2021 V2EX