V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
a523
V2EX  ›  Python

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

  •  
  •   a523 · 2022-04-27 13:10:33 +08:00 · 15272 次点击
    这是一个创建于 701 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

    第 1 条附言  ·  2022-04-27 17:31:21 +08:00
    看到有些回复, 在批评我水平不够, 好吧,我很难过,我问题的本意, 没有指责谁的意思,只是想了解下,了解一门语言的 GC 是否比我想象中的重要(仅仅从使用这门语言技术上说,是不是还有我不知道的点),看看大家的想法。话说面试也不是最近的事情, 只是最近我想起这件事。面试完以后,我去网上查了下 python 的 GC 算法, 看了一两篇文章, 我相信用来应付面试, 不是问题, 但是对一些细节,我不敢说, 已经非常理解。不过不管有没有用,以后还会继续了解。
    164 条回复    2022-05-07 10:22:34 +08:00
    1  2  
    kelvansun
        1
    kelvansun  
       2022-04-27 13:15:31 +08:00
    对 GC 具体细节的了解就是对语言底层的了解
    huangsen365
        2
    huangsen365  
       2022-04-27 13:18:40 +08:00 via Android   ❤️ 19
    因为面试官也想知道
    icyalala
        3
    icyalala  
       2022-04-27 13:19:08 +08:00   ❤️ 17
    一门编程语言用了 8 年,连内存回收机制都不愿意去了解一下,那这。。
    MoYi123
        4
    MoYi123  
       2022-04-27 13:22:36 +08:00   ❤️ 2
    为什么 java 喜欢问 hashmap, 而 python 基本从来不问 dict 呢?
    LeeReamond
        5
    LeeReamond  
       2022-04-27 13:23:06 +08:00   ❤️ 3
    @icyalala 感觉也问题不大?

    面试为啥问很简单,因为 python 本身也没多少东西,不像 java 还有个 util 库给你问,py 本身也没啥线程支持,除了随便问点 gc 还能问啥。不过一般开发层面确实不需要了解 gc ,一般开发能做到知道所有资源在哪里创建,在哪里释放就可以了,具体怎么释放的说实话也没啥意思,像遇到循环引用之类的情况怎么处理,还有生长降级之类的,确实是写这么多年代码,看过也只是看过而已,毕竟又不要求你自己实现解释器,还真没用相关知识处理过实际问题。
    wd
        6
    wd  
       2022-04-27 13:23:44 +08:00 via iPhone
    这个就是考量你对细节的理解,你可以写了三年 crud 但是如果你写了三年只懂 crud 那就不一样了..
    fishCatcher
        7
    fishCatcher  
       2022-04-27 13:26:10 +08:00 via iPhone   ❤️ 26
    说白了就是卷的没东西问了,考这些不如考系统设计
    RickyC
        8
    RickyC  
       2022-04-27 13:31:38 +08:00
    也许他自己也不会, 故意为难你
    icyalala
        9
    icyalala  
       2022-04-27 13:34:05 +08:00   ❤️ 3
    @LeeReamond "现在开发用不到的东西,就不必去了解", 让面试官感受到这种态度的话,会很败好感度的。
    哪怕说 "我尝试了解过,大概是什么样子,但是现在细节不清楚了" 都会比什么都不说要好。

    另外一个,面试要尝试对对方有更全面的了解,就像 Fuzzing 那样,从各方面逐渐达到你的边界,才能理解你的能力范围。
    crackhopper
        10
    crackhopper  
       2022-04-27 13:34:39 +08:00   ❤️ 4
    95%的工作用不上深入理解 GC 。但还有 5%的工作是需要理解的。

    有 GC 的语言可能由于 GC 有 bug 、或者使用语言的写法是标准里未定义的,都会导致内存泄漏。

    以此判断对某门语言花了多少心思,是有这方面考量。另一种隐含的考量是,是否一个人有机会接触到底层细节。一般来说,机会往往是:项目用得特性比较深入,技术含量高;个人自驱动强,不断加深深度触及到了底层技术。不管是那种,都应该是面试官更青睐的人选,后者尤其青睐。
    buried
        11
    buried  
       2022-04-27 13:43:30 +08:00   ❤️ 3
    刚毕业被问过 c 的 gc
    villivateur
        12
    villivateur  
       2022-04-27 13:46:14 +08:00 via Android   ❤️ 2
    @buried 这人是耍你的吧? C 哪有 GC
    codefever
        13
    codefever  
       2022-04-27 13:48:17 +08:00
    ​这些问题在日常开发、维护中可能被很多人忽视(比如有的人遇到上面的问题只是重启服务器或者调大内存,而不会深究问题根源),但能够理解并解决这些问题是程序员进阶的必备要求。
    buried
        14
    buried  
       2022-04-27 13:52:24 +08:00
    @villivateur #12 刚毕业,自己也菜,没底气; 应聘的 java 开发,问的就是 c 的 gc,感觉面试官也心不在焉,我也很纳闷,回答了一通堆内存的管理云云
    fiypig
        15
    fiypig  
       2022-04-27 14:09:55 +08:00
    如果问 gc 我会画虎烂下三色标记法
    pengtdyd
        16
    pengtdyd  
       2022-04-27 14:19:52 +08:00   ❤️ 21
    曾经有一个家公司招聘 nodejs 开发,要求 12 年以上经验。然而 nodejs 的作者才 10 年 nodejs 开发经验。
    fanxasy
        17
    fanxasy  
       2022-04-27 14:20:00 +08:00
    一个字,卷
    yinh0715
        18
    yinh0715  
       2022-04-27 14:22:49 +08:00
    因为面试官的问题 也可能是在网络上找的面试题 doge
    Kasumi20
        19
    Kasumi20  
       2022-04-27 14:26:05 +08:00
    @buried free()不就完事了
    Leonard
        20
    Leonard  
       2022-04-27 14:26:22 +08:00   ❤️ 1
    卷就对了。问简单的大家都会,那我怎么选招谁呢,那就问难点的吧,问什么呢,网上搜索一下面试题。
    LeeReamond
        21
    LeeReamond  
       2022-04-27 14:33:22 +08:00
    @icyalala 我觉得你可以区分一下现在用不上就不了解,和了解了但是很多年没用上之间的区别。
    ipwx
        22
    ipwx  
       2022-04-27 14:35:44 +08:00   ❤️ 1
    @LeeReamond Python 不需要了解 gc ?笑话

    随便写个什么大数据处理的程序,或者是 pytorch 模型,不了解 gc 在一个大函数里面变量名不释放,你的程序就跪了
    ChefIsAwesome
        23
    ChefIsAwesome  
       2022-04-27 14:39:19 +08:00
    造火箭,拧螺丝。街道办上班的学历可都不低,可他还是个街道办。
    knightdf
        24
    knightdf  
       2022-04-27 14:46:03 +08:00
    因为大家都问这,其实他也不知道问什么
    unintialized
        25
    unintialized  
       2022-04-27 14:46:42 +08:00   ❤️ 3
    建议问问他懂不懂 Type Theory 或 Category Theory ?
    NoKey
        26
    NoKey  
       2022-04-27 14:47:11 +08:00
    其他的不知道,java 这块,如果招进来人要求高一点,要涉及到服务维护,性能调优的话,gc 是必须要熟悉的,那么就看面试官怎么看到这一块了,到底是每个人都问,还是针对性不同岗位的问
    cco
        27
    cco  
       2022-04-27 14:47:31 +08:00   ❤️ 1
    大多数都是为了卷,说白了。你要真研究过这些东西,稍微聊一会儿面试官该不会了。都是每天刷各种公众号看了点皮毛。
    不过,有一说一,这些也该了解。大多数开发用不到,但是极个别关键开发(中间件之类的)还是很讲究这些东西的。
    t2jk4000
        28
    t2jk4000  
       2022-04-27 14:50:41 +08:00   ❤️ 1
    @ipwx 你写有性能要求的东西还用 python 啊?
    yedanten
        29
    yedanten  
       2022-04-27 14:54:24 +08:00 via Android
    只说 py 这语言 问 gc 那是纯粹面试官没东西问了。
    ox180
        30
    ox180  
       2022-04-27 14:57:05 +08:00
    @t2jk4000 对于深度学习领域,python 还是必要的,可以不知道。。
    fawdlstty
        31
    fawdlstty  
       2022-04-27 14:57:18 +08:00   ❤️ 2
    1 、crud boy 工作是不需要知道 gc 内容的,不过面试官通常考虑到可能因为项目扩展需要,有一些深度方面的知识的人来写 crud ,能比只会最简单那帮人靠谱。因此一般都需要问这个
    2 、写了 8 年不了解 gc 啥的其实没啥问题,技术有两个发展方向,一个是架构,一个是应用,前者就要求一些很深的技术,后者要求能把极简单的技术整合一下,做成有用或有意思的东西,能在 github 收千星,我猜测你走的后者,不过你得判断一下你走的路子
    3 、写八年 crud 也可以,不过这是个人选择,别人问 gc 啥的是他们的路子,道不同不相为谋
    gam2046
        32
    gam2046  
       2022-04-27 15:02:35 +08:00   ❤️ 1
    多数人了解大概也就是看个啥公众号或者 CSDN 那种,就拿来问,月薪就几千一万的,根本就不需要知道什么 gc ,vm 原理。问的人自己基本也说不明白。日常开发也用不到。遇到问题了也别怀疑 gc bug ,100%是开发人员自己的问题。

    如果哪位大佬月薪就一万多点,工作又必须了解这些细节,赶紧看看下家,加工资吧。翻倍难度都不大。
    gesse
        33
    gesse  
       2022-04-27 15:14:58 +08:00
    如果你对降龙十八掌感兴趣、并且能说出个一二来, 你的军体拳应该会不差, 实际当保安绝对够,

    底子好、有求知欲,很好。
    goophy
        34
    goophy  
       2022-04-27 15:19:26 +08:00   ❤️ 16
    面试官,解释一下敲代码时候的神经如何影响肌肉运动的?活了几十年基本原理不应该了解一下么?
    Huelse
        35
    Huelse  
       2022-04-27 15:20:11 +08:00
    @icyalala #9 所以还是应付面试😅
    zhujq
        36
    zhujq  
       2022-04-27 15:22:39 +08:00
    没啥好问的,就跟风问问这个
    hbin
        37
    hbin  
       2022-04-27 15:24:31 +08:00
    @huangsen365 哈哈哈哈,确实是这样。
    focux
        38
    focux  
       2022-04-27 15:32:28 +08:00
    等遇到了,排查起来会是巨坑。
    imsea1
        39
    imsea1  
       2022-04-27 15:42:46 +08:00
    看你上限的水平吧,毕竟都喜欢有成长能力的员工
    yangyaofei
        40
    yangyaofei  
       2022-04-27 15:47:24 +08:00
    谁知道, 企业需要一般的开发做那 5% 的工作么... 我宁愿要能把 80%做好的人就行, 而不是知道 5% 却做不好 50%的

    可现在是 5% 的朗朗上口, 80% 唯唯诺诺.......
    xsen
        41
    xsen  
       2022-04-27 15:48:32 +08:00
    @fawdlstty #31 #2 架构并不需要很深的技术,只是需要某些方向很深入 + 技术广度
    taogen
        42
    taogen  
       2022-04-27 15:48:39 +08:00   ❤️ 1
    不是喜欢问,而是形成了问八股文的氛围。
    为什么是八股文,而不是算法。因为八股文可以速成,算法不行。You know, 大学学不到啥,大家都是快毕业时速成过来的。问算法可能很多人找不到工作,很多公司招不到人。
    HiShan
        43
    HiShan  
       2022-04-27 15:55:16 +08:00
    画家会知道他们用的颜料的具体成分是啥吗?具体的工艺流程吗? 应该不知道吧,这个也不重要吧? 底层设计和上层应用是两码事吧? CURD BOY 就不如底层工程师吗? CURD 工程师能把一个请求优化的很好 ,一个底层工程师能把系统设计的很好 ,不矛盾吧? 为啥非要比一比搞个鄙视链出来。
    Biwood
        44
    Biwood  
       2022-04-27 15:59:05 +08:00
    我的天,内存回收可以说是一门编程语言核心中的核心,竟然不知道为什么。我一个没怎么写过 C/C++ 的人都知道内存管理有多重要,NASA 不就是因为内存管理问题直接禁用 C 语言的某些特性吗,这玩意儿直接关系到人命的。

    不得不说现代程序员绝大部分都离底层越来越远,过于靠近业务以及过于重视开发速度而没来得及深入到技术本身。想想 V 站作为一个苹果粉丝爱好者论坛,大部分人应该都是喜欢开箱即用的东西,也可以理解。
    LeeReamond
        45
    LeeReamond  
       2022-04-27 16:02:58 +08:00
    @ipwx 你这例子重复我之前的话啊,#5 原文 “一般开发能做到知道所有资源在哪里创建,在哪里释放就可以了”,你这又扯啥不知道释放,不知道谁笑话
    bleaker
        46
    bleaker  
       2022-04-27 16:07:34 +08:00   ❤️ 5
    因为八股文和算法有标准答案,对的就是对,不对就是不对

    很多人没能力去考别人 system design
    anonymousar
        47
    anonymousar  
       2022-04-27 16:15:36 +08:00
    写了 8 年 py 3 年前问出这种问题 “程序如何执行需要 sudo 权限的任务”。。
    datoujiejie221
        48
    datoujiejie221  
       2022-04-27 16:17:16 +08:00
    因为其他语言如果不懂得话 写代码会出很多问题
    做 iOS 入门编程 当时如果不搞清楚内存管理 那么程序会经常崩溃 c++也是同理
    java 如果不懂 那么 oom 问题也是很难很好的解决
    总结一下 了解内存管理 有垃圾回收的语言 是为了好排查 oom 的问题 没有垃圾回收的 是好排查野指针的问题
    hahadaxigua834
        49
    hahadaxigua834  
       2022-04-27 16:20:19 +08:00 via Android
    新人面试官表示,不知道问啥,只会挑一些经典问题
    a523
        50
    a523  
    OP
       2022-04-27 16:27:05 +08:00
    @anonymousar 是, 我也对我以前问过的问题感到可笑,但不觉得是耻辱。光记得耻辱别人, 很快自己就会退步。
    wu67
        51
    wu67  
       2022-04-27 17:01:15 +08:00
    讲道理, 如果主要语言不是底层的, 那我关心他 GC 干卵? 相对‘高层级’的编程语言的一个特点就是屏蔽了开发者对垃圾回收的感知、规避直接内存操作啊? 还是说面试的是底层岗? 还是说公司有对‘开发环境’进行二次开发的环境项目?
    gengchun
        52
    gengchun  
       2022-04-27 17:25:51 +08:00
    手动狗头一下。CPython 的 gc 机制难道不是重启吗?

    我觉得 CPython 的 gc 研究可以用一行代码总结:

    gc.set_threshold(0)
    FakNoCNName
        53
    FakNoCNName  
       2022-04-27 17:35:58 +08:00
    楼上这么多人发言,请问有几个人用到相关知识的时候不去查资料再确认一下或者看看细节的?说白了就是供大于求,用来淘汰人的,跟英语四六级证书一个样子。

    大多数的知识都只需要了解个大概,保证遇到的时候知道有这么个东西,需要用的时候知道找什么。

    对于上来问底层的面试官,你要是不爽可以摔给他一个你特别熟悉的领域里面有难度的问题试试,当然这么做面试大概率就挂了。。。
    a523
        54
    a523  
    OP
       2022-04-27 17:40:51 +08:00
    @FakNoCNName 哈哈, 面试挂了, 不要紧, 选择也是双向的。
    neutrinos
        55
    neutrinos  
       2022-04-27 17:42:07 +08:00 via iPhone
    1. 在某些情况下需要暂时关掉 gc ,防止 gc 运行打断当前任务
    2. gil 的存在和 gc 有关,如果愿意了解 gil 的话就会知道 gc 怎么工作
    senhtry
        56
    senhtry  
       2022-04-27 17:58:49 +08:00
    不问 gc ,如果问你遇到内存泄露怎么办,这个可能更友好点? gc 可以背书,有套路的。问内存泄露,一定会问 gc ,为什么变量不 gc 呢,然后就可以展开了。
    pigspy
        57
    pigspy  
       2022-04-27 18:03:52 +08:00
    国外这么问吗?有没有 run 出去的大佬说下?
    dantangfan
        58
    dantangfan  
       2022-04-27 18:11:14 +08:00
    虽然我会,但我依然认为这是卷、八股风气盛行的结果。
    虽然我会,但是我是在遇到问题之后摸索和理解出来的,就好像上面的大多数理解 gc 的人,并不是自己纯去背诵就能理解的。
    虽然我会,但我面试一般不会直接问这种问题,更喜欢问你遇到的难题、或者出个难题让你去排查或者解决。
    总之,我也认为直接让面试者去背诵 gc 并不是什么好事,也不是什么优秀的面试官。
    drackzy
        59
    drackzy  
       2022-04-27 18:13:27 +08:00   ❤️ 1
    筛掉 CURD 仔,看你平时爱不爱学习。
    Suddoo
        60
    Suddoo  
       2022-04-27 18:23:15 +08:00 via iPhone
    了解个屁,都是 crud boy ,api caller ,背几个八股文还有优越感了,有本事自己去开发一个语言让大家用啊,八股文背得滚瓜烂熟,人家一卡脖子就歇菜,有意义吗?再说了,你背的这些八股文,确定没有过时?
    dji38838c
        61
    dji38838c  
       2022-04-27 18:23:24 +08:00
    筛选总要问东西的,
    考公务员为什么要考脑筋急转弯?
    否则考什么呢?微分方程?高级英语?那更难嘛
    Suddoo
        62
    Suddoo  
       2022-04-27 18:30:59 +08:00 via iPhone   ❤️ 1
    八股文背得熟,CMS 现在已经不用了,再去背 csdn 上那些 JVM 内存分布,“调优”技巧还有意义吗? zgc 停顿到 1ms 以内你没有参与开发,graalVM 你没有参与开发,结果面试的时候,你说自己对 gc 非常了解…..
    f64by
        63
    f64by  
       2022-04-27 19:16:01 +08:00
    不考八股,不考底层,那面试其实就没什么好问的了,干脆直接卡年龄、卡学历筛人算了
    glfpes
        64
    glfpes  
       2022-04-27 19:19:56 +08:00   ❤️ 1
    gc 真的很重要,如何选择符合业务场景的 gc ,是很重要的。
    曾经有一次,gc 经过优化后,系统的 p99 延迟降低了 60%,可以瞬间完成“性能优化”okr 。
    glfpes
        65
    glfpes  
       2022-04-27 19:23:46 +08:00
    @Suddoo 你这种心态,恐怕找不到什么好工作。
    这个世界永远都是连续的。天天以非 1 即 0 的理想环境来考虑问题,那什么事也办不成。
    早点从中学理科课堂中毕业吧。
    Goooooos
        66
    Goooooos  
       2022-04-27 19:30:37 +08:00 via Android
    知识这种东西不是需要时候才去学的,你觉得现在不需要就不去了解,难道真要遇到了才面向 google 编程吗
    mxT52CRuqR6o5
        67
    mxT52CRuqR6o5  
       2022-04-27 19:37:24 +08:00
    gc 语言解决内存泄漏需要重点关注的是怎样写能 gc ,怎样写不能 gc
    关注 gc 是怎么做的对解决内存泄漏帮助不大
    bazingaQAQ
        68
    bazingaQAQ  
       2022-04-27 19:56:14 +08:00
    我面实习都要问 gc 和 jvm 调优,感觉这是必问环节了
    Suddoo
        69
    Suddoo  
       2022-04-27 20:20:59 +08:00 via iPhone   ❤️ 3
    @glfpes 别扯淡了,就因为你会背 gc 八股文,就能找到“好工作”,你做的工作又对社会产生了什么价值,解决了老板的什么问题?

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

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

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

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

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

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

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

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

    就你这背八股文的时间,人家中学生都写一堆作品了。时代变了,资产阶级垄断知识的时代一去不复返了
    Greenm
        81
    Greenm  
       2022-04-28 08:14:54 +08:00 via iPhone   ❤️ 2
    和网友争论就像和猪在泥潭里摔跤,你试图说服对方,几个小时之后才发现,猪很享受。
    Narcissu5
        82
    Narcissu5  
       2022-04-28 08:37:32 +08:00   ❤️ 1
    国外基本是比较鼓励写风格良好的代码,国内技术圈有个怪圈,都觉得越底层越好。比如 java 的 CAS 操作明明可以用 AtomInteger 的,偏偏要用 unsafe 包,显得高级。
    结果就是和 jdk 实现高度绑定,然后只能继续用 jdk8 ,还尬吹 8 是多么的优秀,后面的版本新功能都没用。。。。
    Marszm
        83
    Marszm  
       2022-04-28 09:34:45 +08:00
    @dji38838c 我倒希望考微分方程,线性代数,高级数学,至少干活的人脑子能理性清醒点。
    levelworm
        84
    levelworm  
       2022-04-28 09:56:44 +08:00 via Android
    @villivateur 操作系统做吧,算不算?
    k9982874
        85
    k9982874  
       2022-04-28 10:02:07 +08:00
    因为就语言本身已经卷到没什么可问的了,大量的标准库开发基本就是拼积木。
    dingyaguang117
        86
    dingyaguang117  
       2022-04-28 10:05:30 +08:00
    如果只是工作用到什么你就会什么,大概率对技术追求较低。对于更有挑战性的工作胜任概率也会低。
    dingyaguang117
        87
    dingyaguang117  
       2022-04-28 10:08:49 +08:00
    会不会 GC 不重要,本质是想知道候选人技术追求如何。 不过我也觉得这种问题,不是特别高明的考察方式,当然更高明的考察方式我也想知道。有的人这种八股文答得好,但是代码逻辑很乱,分析问题毫无条理。
    zhuwd
        88
    zhuwd  
       2022-04-28 10:13:34 +08:00
    要不然怎么证明你卷过
    glfpes
        89
    glfpes  
       2022-04-28 10:17:48 +08:00
    @Suddoo
    确实,你这连 GC 的重要性都拿捏不明白的人,的确可以随便找工作,不过恐怕半年工作还没我一个月多
    glfpes
        90
    glfpes  
       2022-04-28 10:20:06 +08:00
    程序员这个职业上下限的差距之大,恐怕让“程序员”这个词本身就没有什么意义。
    sagaxu
        91
    sagaxu  
       2022-04-28 10:22:46 +08:00
    那么换个问法,内存泄露怎么排查,举几个造成泄露的例子,再举例几个对 GC 更友好的代码技巧?
    janus77
        92
    janus77  
       2022-04-28 10:34:22 +08:00
    卷起来了是这样的,虽然不问可能没坏处,但是问肯定有好处处,那么作为面试方,那肯定是问一下了,反正又不吃亏。
    不要尝试去理解面试官,现在寒冬市场,确实就是卖方话语权大。当然你自己得有个度,遇到问比较离谱的问题就可以直接走人了
    llsquaer
        93
    llsquaer  
       2022-04-28 10:55:57 +08:00   ❤️ 1
    这问题看前面部分感觉挺安逸的,就觉得这里有一个潜在的特色..
    1. 有人说是八股文
    2. 有人说可能用不上 但是需要了解

    所以分析这 2 群人的特点...
    一种是仅仅把程序编写好.应付工作, 或者从事这个行业也是因为看着高新来的.内心不是很想去理解这些东西.
    一种是想专研机制,但是确实没搞明白,或者确实用不上.所以深入不下去了.了解点大概

    针对上面的做一个判断
    一种 会编程 , 不是兴趣驱动 , 编码中很可能遇到难题不会进一步挖掘其机制 ,但是会出一些成绩
    一种 会编程, 兴趣驱动 ,遇到难题使劲啃 , 啃不过很有可能影响进度, 可能还会给公司带来一些损失. 啃过了跳槽升职加薪
    一种 啃不过, 先用其他方法做 ,回头在啃 , 这种其实是最多的

    其实还有一种, 你问他直接手推一个模型出来...遇到了也是震惊, 另谋高就吧 ,我司真用不上.
    就好像你本来想招聘一个文员,只是想问一下你喜欢哪一个朝代,探究下文学素养, 结果他的回答从殷商时代开始到清朝各个时期啥特点说的明明白白, 这类人不是搞考古就是在盗墓. 实在不是我们这行的人啊

    这只是面试闲聊, 看的是你的态度, 如果你的回答是 ""没研究过"" 不代表会被 pass, 只会判断你属于哪一类而已.
    Suddoo
        94
    Suddoo  
       2022-04-28 10:56:12 +08:00 via iPhone
    @glfpes 但是你并没有写出任何 gc 算法啊,你只是在背书啊,你本质上只是一个 crud boy ,知道回字有 8 种写法还产生了一种莫名其妙的优越感

    抱歉,你的工资可能没我高,你打工的收入也可能全部交给房东了,而我不需要给房东打工

    工作也没有高低贵贱,你从事的工作也没有什么值得炫耀的,你只不过是流水线上一颗螺丝钉,虽然你会回字的八种写法,但是,老板还是随时可以把你裁了,你并没有掌握什么核心科技,会写八种回字并没有什么卵用

    都特么上班了,还抱着学生思维,公司招人是来干活的,不是来考试的,并不是谁会背书谁会考试,谁的工资就高
    blless
        95
    blless  
       2022-04-28 11:32:18 +08:00
    python 内存泄漏的经典例子还挺容易犯的
    def test(l=[]):
    l.push(xx)
    ipwx
        96
    ipwx  
       2022-04-28 11:36:24 +08:00   ❤️ 1
    @LeeReamond 可是。。。写 Python 如果没有 gc 的意识,是不会在 **同一个函数** 里面随手 XX = None 或者 del XXX

    你别笑。我见过很多 PhD 写神经网络的代码,又臭又长几百行函数,然后 OOM 。最后发现是中间变量没有随手 XX = None 。你不看看 PyTorch 都在官方文档专门写了一点内容讨论这个话题。。。
    tianyou666shen
        97
    tianyou666shen  
       2022-04-28 11:57:53 +08:00
    //面向薪资编程
    以前脚本语言不要求会,会了也不能明显加钱,那就不会.
    现在换了语言要求会点,能加钱了,那就会点吧.
    glfpes
        98
    glfpes  
       2022-04-28 12:11:47 +08:00
    @Suddoo 学生思维的是你吧?你写什么 fancy 的代码没人 care ,真正有价值的是解决了业务问题。

    我就是房东谢谢,你感兴趣可以翻我回复历史

    工作当然有高地贵贱,只有学生觉得人人平等。只有学生才 care 什么狗屎核心科技。
    Suddoo
        99
    Suddoo  
       2022-04-28 12:24:11 +08:00 via iPhone   ❤️ 1
    @glfpes 你背个八股文,解决了什么狗屁业务?

    你是不是房东关我屌事,但是你觉得全世界就你一个人工资高就很傻逼了,谁给你的自信,是因为你会背 gc 八股文吗?

    你不 care 核心科技,那你装什么孙子呢!都是用别人的工具,别人的语言,别人的框架,背个 gc 八股文有个几把用!
    glfpes
        100
    glfpes  
       2022-04-28 12:39:21 +08:00
    @Suddoo 毫无逻辑可言。你是怎么写代码的?
    懂 gc 是用 gc 的前提,你 TM 连 gc 都不懂,遇到业务上可能出现的性能问题不是两眼一抹黑,抓瞎?

    你 TM 自己先提什么房东不房东的,老子 follow 你结果你先破防了?那有没有一种可能性,你破防是因为你其实自己是租房的?

    我告诉你用别人的框架不是问题,但像你这种用都用不明白的才有问题。

    另外,你这种铁 FW 压根不可能跟我共事,只是你这种水货太 TM 多,严重拉低了程序员的口碑。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1013 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 19:26 · PVG 03:26 · LAX 12:26 · JFK 15:26
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.