字节c++客户端-Cross Platform

9.3 一面

以为肯定挂了所以昨天面完没及时记录。现在挑我还记得的问题中比较突出的几个整理一下。仅是记录,不能当作标准答案哦

1.自我介绍
2.提到有在关注字节开源的lynx框架,于是问对这个架构的理解?
A: 自研渲染引擎、双线程、与chromium和CEF的区别,还谈到了从官方博客中获得的其他知识(如阻碍主线程启动渲染线程的逻辑)
3.提到的实习时做了性能优化,是怎么做的?
A: 因为实习项目还没结束所以没说太仔细,大概就是算法优化和sdk封装到UE引擎层的集成
4.开源项目(模式匹配库)的实现思路?
A: 语法与API的优化、编译期决议分配并内联、运行期直接调用。以及使用concepts避免模板爆炸,提高编译期效率。
5.对该项目有做性能测试吗?
A: Benchmark 的话目前还没有做,之后测完会贴到项目里,但是理论来讲这个库性能不弱(因为没有编译期开销)。现在做了GTest是百分百通过。
6.看到你还有另一个项目,可以讲讲吗?
A: 那个是在学Rust时用来练手的,没什么含金量。 主要功能是保存好的智能体提示词或者其他点子。
7.那对prompts有版本控制吗?
A: 那个项目里用的是我自己写的一个本地版本控制工具。
8. 可以讲讲吗?
A: 大致思路就是用json库将文件目录变成一个可去重的哈希树,同时涉及一些内容寻址建仓的技术(没太展开)
9.和git相比,你觉得你这个工具有性能缺陷吗?
A: 肯定有,我的这个工具每次在更新库的时候都会重建一遍仓库,和git的快照相比性能上差距很大。所以我没有写成开源项目。
10.那如果让你优化,你会怎么做?
A: 没有想过,我可以下去再了解一下git的实现原理。
—— —— ——
下边开始八股
11.你说说c语言和c++有什么区别?
A: 简单,略
12.你提到c++相比c语言,多出一个面向对象特性。那如果让你给c语言加上类的特性,怎么做?
A: 这个简单。用结构体模拟基类和派生类的基本属性,用函数指针来模拟虚表指针去实现多态。
13.第一道代码考核:c语言模拟多态
14.指针和引用的区别?
A:简单。语法、初始化、应用场景
15.那为什么引用一旦绑定就无法修改了?
A:编译器视角来看,引用的底层逻辑是被视为一个常量指针。
16.进程和线程区别?
A: 简单,略
17.进程的资源是怎么隔离开的?
A: 进程之间相互独立,操作系统会给这个进程分配一个独立的内存空间和一部分的系统资源。线程之间共享进程的内存空间,并发执行。
18.内存是有限的,那一般有那么多进程,这个内存是怎么映射的?
A: 虚拟内存。分页与分段
19.32位系统的一个进程最大可以访问多少内存?
A: 4GB
20.那如果一个4g内存的机器要跑100个进程,怎么实现的?
A: 虚拟内存管理,内存交换
21.OSI七层
A: 简单,略
22.HTTP在哪一层
A: 应用层。
23.简单描述一下浏览器里发起一个HTTP请求到达服务器的过程?
A: (简)域名解析,建立连接,发送请求,浏览器处理响应,通过报文内容渲染页面,关闭连接(因为HTTP1.1是长连接机制,所以完成请求后就不需要保持这个连接了)
24.http的报文是怎么发出去的?
A: 数据链路层的操作。
25.代码考核2,当时脑子懵了只A出来50%的测试用例,现在题目也不记得了

反问
1.对我的评价
A: 基础能力过关,技术面挺广的。但是需要多看看好的开源项目并学习思路,复用到自己的项目里。
2.业务?
A: Lynx是一个大的业务部门,面试的这个组主要负责编译框架,测试工具和CI/CD

总共1.5h

—— —— ——
9.4 下午约二面

#面试问题记录#  #我的秋招日记#
全部评论

相关推荐

评论
1
5
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务