第131章 你随便问
流离不失所提示您:看后求收藏(第131章 你随便问,开局捡到落魄少女,我真不是变态,流离不失所,废文网),接着再看更方便。
请关闭浏览器的阅读/畅读/小说模式并且关闭广告屏蔽过滤功能,避免出现内容无法显示或者段落错乱。
周围已经有同学开始发出嗤笑声了,至于是嘲笑胡静一脸懵逼的模样,还是嘲笑陈述的自不量力,陈述不得而知。
陈述没有将刚才的话复述一遍,从胡静有些愤怒的表情来看,她的大脑已经完全理解了陈述刚才在说什么。
“狂妄至极!”
胡静的胸口起伏,明显是被陈述的话气到了,片刻后,她回过神来,意识到自己有些失态。
胡静冷笑一声,看向陈述:
“既然你这么有自信,那我问你几个问题,看看你是否能答得上来?”
陈述笑容依旧:
“老师,你随便问,我肯定倾囊相授。”
胡静听出了陈述语言中的嘲讽,强忍住没有发作,转身从讲台上将笔记本电脑拿了过来,并敲下了一段代码
做完这一切,胡静开口问道:
“解释一下,为什么链表的插入操作时间复杂度是o(1),但实际工程中数组往往比链表更快?”
确实是个很基础的问题,但刁难的意味非常明显。
毕竟胡静讲了一上午的课,也不过堪堪讲了一些“计算机的定义”“计算机的发展历史”等等。
这个问题,以胡静ppt的目录教学进度来看,起码得一两个月后才会讲到。
陈述拿起矿泉水,喝了一口后,不紧不慢地回答道:
“o(1)只是不考虑定位节点的理论值,cpU缓存预取机制对连续内存更友好,链表节点分散在堆内存会导致cache miss率飙升。”
“所以Linux内核用kmem_cache做对象池,Golang的slice在append时容量翻倍也是这个原理。”
一长串专业术语让在场的所有人都是一愣,胡静眯了眯眼睛,看向陈述,语气依旧不善:
“教科书背的不错。”
“那你说说,用c语言实现双向链表时,怎么用单指针域同时存储前驱和后继地址?”
陈述将胡静的笔记本电脑拿了过来,敲出了一段代码,随后将电脑屏幕转向胡静:
“xoR双向链表。”
“不过,没人会真的这么写,因为现代cpU的乱序执行会导致内存访问预测失效”。
随后,陈述指了指Intel的优化手册,继续说道:
“ARmv8还得处理指针标签位。真要省内存不如用unrolled linked list,还能利用SImd指令加速遍历。”
胡静的这个问题比较刁钻,是一个冷门细节。
既然如此,陈述先拿出一个冷门的解决方法,再给出一个性价比更高的替代方案。
到这一步,陈述所展现出来的理解,已然超过了这个学校百分之七八十的大四学生。
二人的对话已经超出了教室里这群大一新生的理解范畴。
他们的笔记上只有“计算机的定义”这种毫无意义的知识点,完全听不懂二人在说什么。
胡静看着陈述敲出来的这段代码,面色有些难看,但她似乎依旧没有死心。
胡静调出了调试器界面,继续问道:
“这个链表程序运行后内存暴涨,给你30秒找出问题!”
陈述嗤笑一声,声音中的嘲讽意味都快溢出来了。
真是有够丑陋的,这个问题许多初入行的人可能都回答不上来,亏胡静好意思拿出来刁难自己。
不过...这倒也能看出,胡静还是有些水平的。
这就让陈述更加不理解了。
既然有些水平,还好意思拿着这种破旧的ppt来教人,还好意思让他们做笔记?
本章未完,点击下一页继续阅读。