暑期第一面oωo, TME一面面经
前言面试体验挺好的,讲项目什么的面试官也不会打断,跟着思路听,也会分享自己的思路。发现那边跟我现在在公司使用的开发平台和工具还挺相似的,都是TKE还有用灯塔做报表。反问业务对面给我介绍了好多,总之是做独立音乐人相关的内容和签约,感觉还蛮有意思的。
PS:居然没有出算法题
面经问项目
问MySQL,还有什么类型的锁,答插入意向锁、元数据锁
问元数据锁是什么锁,答在对表的字段做更改的时候加的锁
问生产环境如果对一个千万级大表加字段,怎么避免长时间加锁,因为看过生产环境加索引的方案,然后转移话题说生产环境加索引(其实大同小异)要怎么加,答建一个新表,加字段/索引,将原表数据导入新表,将期间的增量数据导入新表,新旧表改名
复盘:发现自己讲的只是MySQL5.6.7之前的 pt-online-schema-change 方案,新版本有内部Online DDL,可以参考文章:阿里面试:1000万级大表, 如何 加索引?-阿里云开发者社区
问给一个update,条件包括id、age、name,age<16,会发生什么,答会把<16的数据都锁住,特别讲了下16边界情况的next-key ...
Redis常见面试题大白话简答,关于认识Redis及其数据结构、线程模型和持久化
前言备战面试刷Redis面试题,觉得不能光看还得有输出,于是写文用大白话来回答面试题。
本文仅包括小林coding中Redis面试篇中关于认识Redis、Redis的数据结构、Redis线程模型和Redis持久化部分
写文果然是有助于理解的方式,感觉在倒逼自己思考
参考资料:
小林coding
一、认识Redis1. 什么是RedisRedis 是一种键值对数据库,常应用于分布式的场景,作为 MySQL 的缓存,也可以当作消息队列,以及分布式锁等场景。
2. Redis 和 Mencached 有什么区别它们相同的点是:都是基于内存的数据库,可以当做缓存,都有过期策略,性能都很高。
主要区别是:Redis 支持更多数据类型,而 Mencached 只支持最简单的 key-value。Redis 支持数据持久化。Redis 原生支持分片集群。Redis 还支持发布订阅模型,Lua 脚本等。
3. 为什么选 Redis 作为 MySQL 的缓存主要是因为 Redis 具备高性能和高并发。高性能指 Redis 是基于内存模型的,操作速度很快。高并发是指 Redis 单机就可破10w,而 My ...
《动手学深度学习》Pytorch 版学习笔记一:从预备知识到现代卷积神经网络
前言笔者有一定的机器学习和深度学习理论基础,对 Pytorch 的实战还不够熟悉,打算入职前专项突击一下
本文内容为笔者学习《动手学深度学习》一书的学习笔记
主要记录了代码的实现和实现过程遇到的问题,不完全包括其理论知识
引用:
《动手学深度学习》
一、预备知识1. 数据操作1.1 入门创建行向量
12# 创建行向量x = torch.arange(12)
1tensor([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
报错:module ‘numpy’ has no attribute ‘array’
解决方案:
numpy 版本过高,原版本为 1.21.5,使用以下命令安装 1.21.0 的 numpy
pip uninstall numpy
pip install numpy==1.21
张量的基本操作
123456# 元素的数量print(x.numel())# 张量的形状print(x.shape)# 更改形状print(x.reshape(3, 4))
1234512torch.Size([12])tensor([[ ...
腾讯 IEG 游戏前沿技术 二面复盘
前言二面 40 分钟,面的稀烂,唯一可以圈点的就是一道 hard 写出来了。问了很多基础知识,没有形成很好的引导链到自己准备的项目经历上
面试过程自我介绍巴拉巴拉同一面。。。这次没说做了运维相关,但还是提了自己了解机器学习经典算法。强调了在 xxx 实习的主要产出,包括分布式定时任务解决方案,以及对已有项目的接口调整和性能优化。
问:讲一下做了什么优化答:主要是在后台管理项目和数据分析平台项目中,出现了由于大数据量导致的性能问题。我也根据 SQL 慢查询优化的知识还有数据结构的知识进行了性能的优化
问:能具体讲讲吗
答:通过 explain 看查询的过程,尽量利用最左前缀法则,让查询条件走索引。然后看联表的时候,是不是小表驱动大表,有没有使用谓词下推,尽量不要使用 select *,尽量让索引覆盖返回字段。如果有深度分页的情况。。。(被打断)
问:可以讲有几种类型的优化吗
答:一种就是通过索引去优化,一种是通过联表的方式,还有就是分页的优化,以及分组优化,其实也是让分组条件走索引,也算是索引相关的优化
问:MySQL 索引原理答:索引使用的是 B树 和 B+树,我们知道全表扫描的话消耗 ...
腾讯 IEG 游戏前沿技术 一面复盘
前言投了个实习内推后台开发,本来要电话先交流的那天直接走流程下午面试了,对面两人,面了有一个小时,游戏本的构思续航忘记插电了最后还掉线了一下,趁着还记得面试内容复盘一下
自我介绍一下答:
您好,我是深大26届 xxx 的 xxx,对贵公司后台开发的岗位很感兴趣。现在在 xxx 做后台开发实习生,负责项目的开发和运维相关,还有一部分系统设计相关的的工作,之前在学校中也做过 web 开发相关的项目。
了解到贵公司正在招聘后台开发,做与 AI 相关的交叉。考虑到自己在 xx,对经典机器学习算法还有其相关的论文也比较了解,加上自己在后台开发相关生态的实践较多,因此认为本人跟贵公司的岗位是比较契合的。
我听学长的介绍了解到贵公司会做分布式训练的内容,这块我也是比较感兴趣的。觉得能够将自己在后台开发中对分布式服务的实践与课程中机器学习的内容还有模型的训练的知识相结合,会是很美妙的事情。
很荣幸能有今天交流的机会,希望我们沟通愉快
问实习SQL 优化问:实习干了什么答:会对已有的项目做一些修改,业务需求变动的时候对接口做修改。在开发过程中也出现过因为大数据量导致的性能问题,自己有对 SQL 优化慢查 ...
EnableScheduling 和 Scheduled 实现定时任务的任务延期问题
前言在复盘 ieg 一面看到定时任务阻塞的问题时,研究了下 @EnableScheduling 的源码,觉得可以单开一篇文章讲一讲
本文主要讲述了使用 @EnableScheduling 可能出现的线程阻塞导致定时任务延期的问题,也顺便解释了动态定时任务源码上的实现
引用文章:
@Schedule定时任务+分布式环境:@Schedule定时任务+分布式环境,这些坑你一定得注意!!! (qq.com)
java 中的线程池参数:java中四种线程池及poolSize、corePoolSize、maximumPoolSize_maximum-pool-size-CSDN博客
线程池的拒绝策略:线程池的RejectedExecutionHandler(拒绝策略)-CSDN博客
Java 中实现定时任务:Java中实现定时任务,有多少种解决方案?好久没更新博客了,最近上班做了点小东西,总结复盘一下。主要介绍了定时任务的三种 - 掘金 (juejin.cn)
线程阻塞问题问题根源Java中 使用 Springboot 自带的定时任务 @EnableScheduling 和 @Scheduled ...
【设计模式】UML类图和六大设计原则
前言在实践中经常看到工厂模式、观察者模式等字眼,渐觉设计模式的重要性,于是开刷设计模式。
本文讲述了UML类图以及设计模式的六大原则
参考资料:
课程视频:黑马程序员Java设计模式
一、UML类图1. 类和接口的表示方式
如图所示,在 UML 类图中,第一栏为类的名称,第二栏为类的属性(field),第三栏为类的方法(method)
属性/方法之前的 - + # 表示访问权限:- 表示 private+ 表示 public# 表示 protected
属性的完整表示方式是: 可见性 名称 :类型 [= 缺省值]方法的完整表示方式是: 可见性 名称(参数列表)[:返回类型]
接口图 和 类图 的主要区别是顶端有 \<\>
2. 关联和双向关联关联关系表示存在对象的引用,如 A 类中某一个成员变量的类型为 B 类,那么 A 类依赖于 B 类
关联关系使用 实心箭头 表示
双向关联使用 横线 表示
3. 组合和聚合组合 和 聚合 都是关联的特例,强调整体和部分的关系,在转换为关系模型时跟关联没有区别,但是在UML 中的描述存在语义上的区别。
组合组合 中的整体和部分具有强依赖,整 ...
Filebeat安装部署及入门应用
前言后续开发项目要用到 Filebeat 对日志做收集和处理。本文介绍了 ELK 技术中的 Filebeat,用于轻量级的日志收集和分析
参考资料:
视频教程:Elastic Stack(ELK)从入门到实践
官方文档:Filebeat overview | Filebeat Reference [8.14] | Elastic
一、安装部署环境:
12root@Andrew:~# cat /proc/versionLinux version 5.15.153.1-microsoft-standard-WSL2 (root@941d701f84f1) (gcc (GCC) 11.2.0, GNU ld (GNU Binutils) 2.37) #1 SMP Fri Mar 29 23:14:13 UTC 2024
Linux环境下安装命令:
123curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-8.14.3-linux-x86_64.tar.gztar xzvf filebeat-8.1 ...
Java中实现定时任务,有多少种解决方案?
前言好久没更新博客了,最近上班做了点小东西,总结复盘一下
参考资料:
SpringBoot 设置动态定时任务,千万别再写死了~ (qq.com)
3千字带你搞懂XXL-JOB任务调度平台-阿里云开发者社区 (aliyun.com)
一、定时任务1. 引入依赖创建Springboot应用,引入相应依赖:
1234567891011121314151617181920212223<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <artifactId>spring-boot-starter-logging</artifactId> ...
机器学习笔记——SVM丝滑推导及代码实现,从硬间隔到软间隔再到核函数
前言开始搓延期了一百年的机器学习实验,把SVM推导过程从定义到求解都刷了一遍,包括推导优化目标、提出对偶问题、利用KKT条件得到原问题的解以及SMO算法等。
注意:本文在某些地方比如KKT条件和SMO算法处不提供证明过程(太麻烦了喵),而是直接使用其结论,感兴趣的读者可以查阅参考资料
参考资料:
推导过程学习视频:(系列六) 支持向量机1-硬间隔SVM-模型定义_哔哩哔哩_bilibili
拉格朗日对偶性的条件:拉格朗日对偶性详解(手推笔记)-CSDN博客
从几何角度理解KKT条件和对偶关系:机器学习笔记(8)-对偶关系和KKT条件 - Epir - 博客园 (cnblogs.com)‘
代码参考:统计学习:线性可分支持向量机(Cvxpy实现) - orion-orion - 博客园 (cnblogs.com)
一、优化问题当一个分类问题线性可分时,我们希望找到一个最优的超平面将其划分,这个最优的超平面需要满足以下性质:
超平面 和 距超平面最近的样本点 之间的间隔应该尽可能大
举一个简单的例子:
当这是一个二分类问题,且样本点特征数为2时(点可以表示在二维平面),该超平面是一条一维 ...