2. 从业时间越久,发现互联网很多知识都是错的, 对小白误导有多深?
107 replies
| by jeesk
| in Java
| 14:04:26
说说我自己的看法, 无论是 csdn 还是知乎, 在我最开始从业 java 的时候,觉得他们说得没有毛病? 从业几年后,发现很多都是在鬼扯。 就拿 BIO 和 NIO 谁性能好, 知乎上面竞争激烈,下面我粘贴一个知乎的回答。
回答 1:
首先要明确一点:nio 的适用于 io 高并发场景线程开销包括:内存开销(创建一个线程需要为其分配和维护一个 tcb 线程控制块保存上下文,一个线程私有的栈)、线程上下文切换的时间开销(保存上下文,加载下一个线程的上下文),在高并发环境下多出来的这一点点开销积累起来是非常可观的。若使用 bio ,高并发必然引起激烈 contention ,导致大量的上下文切换,若采用一个 io 一个线程模型,一个线程 M 级的空间消耗,内存消耗不起。而 netty 采用 nio 加 selector 加线程池基本上解决了上述问题:一是线程池限制了内存消耗,二是采用 selector 使得只有处于活动状态的 io 才会去占用线程,不会使线程白白因为 io 而阻塞,提高了线程利用率。
说说他们的谬论:
1. 使用 BIO 上下文切换厉害, 如果是相同 4 核 cpu , 无论我是用 bio 还是 nio ,都用 200 个线程, 这个时候对 cpu 的竞争到底有多剧烈? 我个人觉得差不了多少。 所以这个说法是错的。
2. 若采用一个 io 一个线程模型,一个线程 M 级的空间消耗。 这个就更扯淡了。 即使是 tomcat 在 8.5 以前也是 BIO 200 个线程, 都没有用到 1w 个线程? 为什么非要扯开大量线程呢? 并且 tomcat 在 8.5 以后才默认 nio.
3. 一是线程池限制了内存消耗,二是采用 selector 使得只有处于活动状态的 io 才会去占用线程. 那我 tomcat 用 BIO 没有内存限制? 没有内存限制岂不是早就宕机了? 再说说 selector 的问题, 我 NIO 在 readSelector 开 10 个线程去调用 select, 不都是阻塞的吗? 怎么会说在活动状态才占用线程?
然后你会发现这些错误的回答有很多,下面还有大量的小白点赞,觉得说得很对。 但是一经脑子思考就发现, 这绝对是坑 B.
如果有不同意见的小伙伴可以留言,我觉得这个可以作为一个面试题。
3. 自从不用百度以后,人生都轻松了。以前真是给自己找罪受。
91 replies
| by 13936
| in 随想
| 02:52:17
不喜欢百度很久了。2016 ,17 年网络上开始舆论抨击百度的时候,还没觉得什么,是不是有人故意抹黑它。因为百度搜索挺好用的。当时觉得广告也不多。魏则西事件我也没办法从情理上全部怪罪给百度,毕竟本来就是不治之症。
当然一直也比较同情魏则西,但是慢慢百度的种种作为已经开始突破我的下线了。不过可能平时电脑用的多,手机是苹果的,当时百度搜索有广告,但还没有到影响我正常搜索。虽然当时就发现经常百度搜出来的东西基本都导流给自己产品,比如杀千刀的百家号什么的。但是基本找到我想要的答案都出现在知乎上。但是那时候百度和知乎关系还不是很好,用必应谷歌就经常能搜到一些知乎上的内容,基本能找到我想要的答案。但是百度不行。
后面百度入资知乎,确实好用了一点。但是大多数情况还是百家号,好视频什么的。太操蛋了。不过还能忍。可能那时候还在读大学电脑用的多,毕竟安装了 Adblock 。
后面毕业后因为需要经常使用手机,而且是安卓的。随便搜个东西,有时没事就自动跳转到百度浏览器,这个状态持续了将近一年。但凡导流到自家网站一定会跳转界面要求你下载百度浏览器。而且很多时候不下载的话就看不了。这种体验我真的想爆粗口,我浏览你 X 啊。
自己搜索页面各种丑到家,恨不得前十排都是广告。然后不停地跳转,跳转。强奸用户。关键如果百度浏览器有 via 浏览器一半好用,我就算了。但那是啥? qiang 完别人给人嘴里喂 shi ?
很多时候发现要跳转不给看基本都再浏览下一个搜索结果。但是时间长了真的忍不了。
为什么这么长时间没换呢,搜索引擎的粘性还是有的。当时觉得按粘性来讲还是社交>搜索>购物。特别担心换了一个引擎找不到自己想要的结果,蝴蝶效应影响了自己的人生怎么办。毕竟从高中时候开始用百度那时候还挺喜欢它的,觉得搜出来也准。
后面实在忍不了,就换 BING 了,用了没半天,就感觉太爽了。有一种我人生都轻松了的感觉。再也没有晃人眼目的丑到爆的广告,对比了一下,搜索结果基本也都准确。当时还下载了一个简单搜索没有广告的。如果觉得 BING 这条搜索结果不准就用简单搜索重新搜一下。几个月下来发现基本不需要用。
后面工作需要用梯子,时时刻刻挂着梯子。有的设备用谷歌,有的设备用 Bing ,但这种感觉都比用百度好。实在是好太多。特别好奇自己当时是怎么忍得了百度那么久的。我脾气实在是太好了。还记得当时转用 BING 每两天就开心到分享了一条朋友圈,从此没有罪受。
几年时间飞逝,BAT 也只剩下了 AT 。这种基本的产品都不尊重的公司也走不远。其实我之前还是比较喜欢贴吧,百度知道,以及一些百度产品。当时觉得做的是真挺不错的。后面百度的各种导向,都在寻求给某 SHIT 浏览器导流新增用户(但我估计也没新增多少),但是也逼走了不少用户。也想问问百度,抢来一波赶走一波,到底值得不值得?
这就是百度这家公司的水准,在我看来,已经到了竭泽而渔,饮鸩止渴的地步了。
就像许多人的人生一样,出卖自己的身体,出卖自己的时间,出卖自己的尊严来换取得以度日的薪水和报酬却依然活在温饱线上。
难以想象,失去了前进方向的公司会怎么样。在 AT 两家大杀四方成为时代浪潮儿向企业的目标和愿景前进的时候,赚足了利润和风光。至少很多时刻,他们的导向让这两家公司还有底线。还有领导风范。这也是企业家该有的基本素质。
当任何一个企业在广袤的市场中却找不到自己的定位和该有的方向,只能出卖自己,无异于向自己捅刀。一个没有领导素质的企业家就是这样的结果。其实就是一头猪被吹到了风口上,风停下来只能惨惨摔死。
在当时那么好的时代,李居然一件事都没做对。整整错过了一整个时代,这说明他其实毫无企业家该有的素质,只能是一个合格和基本的商人。
最终的结果是,把美好的产品通通糟蹋掉,利用各种不体面的方法赚钱。如果你有一个漂亮的女儿,你可以让她学跳舞学艺术学科学知识。但你选择了贱卖她。
没有水平的人的选择只能是这样。
也许李是人生赢家,高高在上的,尤其在很多鼠人看来。但我愿意相信,它离倒下也不远了,一家会出卖自己的公司终究会死在最后一次自以为聪明的交易和变化上。
变化对它来说是恐怖的,因为它从来都没有能抓住风口和时代的能力。
4. 构建一个完美无冲突的 hashmap。
89 replies
| by 3dwelcome
| in 算法
| 09:52:16
首先,hashmap 是把一个很长的字符串,散列成固定长度。由于原始数据是无限长,而散列值长度基本是固定的,所以无法避免 hash 冲突。
但是,我们可以通过设计一个前置过滤函数,让一个 hashmap 变成一组 hashmap.
类似砂石过滤里的多层滤网原理。
第一层是粗砂砾,也就是计算每个元素,如果 hash 函数并无冲突,就保留在第一层。其余元素自动流到第二层。
第二层是中砂砾,元素被过滤一次,数量减少了。用第二个 hash 函数来过滤,明显会减少冲突。还有冲突,就流到第三层。
第三层是细砂砾,以此类推,直到所有元素被处理完成。
这样就可以避免 hashmap 出现碰撞的情况了。当然真实场景里,并不需要一组 hashmap ,可以优化到多层 bitmap 数据+一个 hashmap 来保存和查询结果。
5. 农村盖了个小瓦房, 心里平静了
89 replies
| by prenwang
| in 生活
| 18:52:51
一直很焦虑,很焦虑, 总是觉的生活被无形的绑架.
一年前老父亲突然来电话说想翻新已经十年没人住的老房子, 我这才想起来原来农村里还有点小资产, 还有 10 亩地,每年老父亲拿点国家补贴买菜, 听到老父亲的想法后, 我很疑惑, 农村不是都快没人了吗, 还翻新干啥, 老父亲说, 你落伍啦, 咱村里国家投了几百个 w 搞基建, 水电,宽带,天然气早通了, 水利工程正在火热建设, 山上在建旅游区, 三条大马路四通八达, 30 分钟到市中心...
我这才意识到问题的重要性, 回去考察了一番, 一番新气象确实让我大吃一惊, 决定开干了, 不过我就没打算像其他村民一样, 盖那种大楼房, 一方面那种投入太大, 30w 都只是个门槛, 另外我和老父亲把附近的有特色的房子看了个遍, 那些空间更大大,房间更多的往往更多闲置, 卫生也难搞, 就没几家整的象样的, 而有两家仿四合院的很吸睛, 当然造假不菲, 能赶上市区一套房了.
经过一番计议, 我和老父亲决定盖个 80 平的瓦房, 没错,就是传统瓦房, 同时把房屋周围的一亩多闲置空地花钱盘下来, 加上已有的老宅基地, 有近 2000 平了, 菜园子, 小鱼塘, 花园全都有了, 我想要建个大院子, 以往农村人因为要个大面子, 所以喜欢盖个大房子, 但我觉得大院子比大房子更有面子, 而且扩展用途可不止于面子.
整个建设下来, 总价没有超过 15w. 小瓦房盖好了, 我心里突然平静了, 我并不担心某些人的某些担心, 比如你在抖音上搜索“农村盖房子”, 一大群人就会说千万别回家盖房子, 农村以后就是空壳子, 这类人其实就是为了刷个热度, 不同地方的农村都是千差万别万别. 平原农村的优势就是更容易开发, 没有明显特色的山区农村和平原相比差距是很大的, 更容易变成空壳子农村.
回老家要 3 个小时的车程, 不过高铁更方便, 1 个半小时就能到, 到站打个车更轻松,
家里的神兽终于有个新天地了, 我还能搞搞农村数字化实验项目, 所有的焦虑有了一个释放的出口, 也多了一条退路.
不可否认的是, 农村里的人确实不多, 大部分都是农一代老人,机械化勉强玩, 数字化完全玩不转, 教育资源几乎被全部撸到市中心去了, 我这种农二代, 如果说拖家带口落到农村肯定不现实, 除非我是个返乡创业大才, 但我并不是, “逆城镇化”的大任可能更适合无牵无挂的农三代.
农一代的老去并不是农村的终点, 农二代终会归来, 农三代正在赶来.
8. b 站美食频道
78 replies
| by mariljacksoa
| in 问与答
| 03:29:19
最近准备搬到同事的新家住,打算有空多煮饭,想请大家推荐一下 b 站的美食频道,要比较家常菜的,家里可以做的,餐馆专业大厨也可以,学学大厨,比如比较常看的 ASIAPLAY