1. 我是皮皮虾首页
  2. 编程开发
  3. 后端
  4. Python

面试xx资本(私募基金)Python高级工程师

面试的问题都比较常见,我没有准备好。下面的题目答案仅供参考。今天二面过了,给了offer。

面试体验一般,hr不够热情,相比大点的公司来讲,没有提前通知面试,面试官上来就直接问问题,都没有自我介绍,有点急哈哈哈。

电话面试

看过Django、Flask这类同步框架的源码吗?

(回答的不好)Django和Flask源码在以前看过,现在基本都忘了,回去得补补。

了解过异步框架吗?如何实现的?原理?需要注意什么

(回答的不好)tornado这类的异步框架实现,没看过,得补补

在Django中遇到过性能问题?如何高并发吗?

(回答的不好)在部署中我们采用的是uwsgi,会启动多个进程。

  • 在部署层可以搭建负载均衡,nginx/haproxy
  • 使用uwsgi多进程部署
  • 在代码层优化读多写少的接口,增加多级缓存,碰到有io阻塞的情况可以开启多个协程操作

在Django同步框架中,如何做到事件循环切换的?

问题应该是这样的:django本事是一个主线程,那代码里面的多线程和多协程如何拿到主线程的执行权限?我到现在都没有搞懂是哈。

Python中协程如何实现?如何调度起来的?

问题描述下:django的主循环是外部的,如果你用原生的协程(asyncio),你得拿到主循环的io,这个你怎么拿到的?外部的主事件循环是django的,你内部的协程怎么拿到的呢?怎么调度的呢?

python3中协程,如果创建多个协程,

考察调度算法

Mysql慢查询如何优化,解决mysql性能问题(几乎每家公司都问题到

我既然回答用es替代,呀四啦。

分析慢在哪里,是否是模糊搜索,是否是大量数据join

  • 可以试试加索引
  • 缩小搜索范围
  • 优化join

说说Mysql索引

  • mysql索引是一种数据结构,方便更快的查询
  • 在innodb中默认使用的是B+树索引

比较下B+树和hash索引

使用过numpy和pandas吗

很少用。。。

Left join 和Right join的区别,2个表join需要注意什么?效率问题?

如果让你写一个定时任务?类似系统中的crontab?怎么获取任务的进度和状态?

现场面试(二面)

讲下自己的项目

  • 巴拉巴拉。

会用django 的 orm吗?会手写sql吗?

  • 问的少,没有延伸

手写Sql如何动态设置字段名称?除了变量的方式有没有更加灵活的方式

  • 刚开始回答设置变量,用变量代替字段

Celery怎么监控?

celery beat有数据库回调

celery 单点问题?挂了怎么办?

celery work抢到任务如何加锁?

Mysql数据库查询如何加锁?怎么看是否加锁?

redis中如果碰到大的数据,几十兆的数据?怎么处理?是否有性能问题?

进程间如何通信的

  • 管道
  • Mq
  • 信号量

管道效率不高?如何序列化的数据很大,会破坏数据结构?

如何用python处理一个计算,性能不够,怎么处理?

  • cpu密集型可以考虑用c写转为python
  • io密集型可以考虑多进程+多协程

原创文章,作者:站长,如若转载,请注明出处:https://wsppx.cn/890/%e7%bd%91%e7%bb%9c%e5%bc%80%e5%8f%91/

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注