代码笔试题:ASR-> LLM-> TTS 怎么测试这几个模块的耗时和总耗时。最后最好能够有个统计结果
import pytest
import time
def test_performance():
num_runs = 10
times = []
for _ in range(num_runs):
start = time.perf_counter()
assert target_function() == "success"
times.append(time.perf_counter() - start)
avg = sum(times) / num_runs
max_time = max(times)
print(f"Average: {avg:.4f}s, Max: {max_time:.4f}s")
面试提问
根据文档中的信息,以下是面试官在摩尔线程面试过程中提出的问题概要:
1. **自我介绍**:
- 请求候选人做一个简单的自我介绍,包括背景、工作经验等。
2. **项目经历与职责**:
- 询问候选人关于之前参与项目的细节,特别是关于国产化适配的项目以及与其他团队的合作经验。
3. **技术方案与协议理解**:
- 关于HTP(可能是HTTP或其他特定协议)解决方案的理解,如何使用服务编写一个解决HTP问题的方案。讨论了基于TCP协议的服务实现细节及其费用模式等问题。
4. **持续集成(CI)和代码提交流程**:
- 如何通过CI(例如Jenkins CI)集成到系统中,当开发人员提交代码后触发测试流程的具体机制是什么样的。
5. **性能测试与计算耗时**:
- 讨论了如何计算模块处理时间,具体提到了定义函数来测量处理时间的方法,并讨论了多个模块的处理逻辑及其实现方法。
6. **单元测试**:
- 提到了进行单元测试的目标是达到0.5秒的响应时间,并讨论了多次运行测试以应对波动的方法。
7. **软链接与文件查找**:
- 询问了如何创建软链接来减少文档体积,以及如何查找具有特定后缀的所有文件。
8. **软件版本更新与灰度发布**:
- 如果有新版软件修复了旧版中的问题,如何通过灰度发布的方式逐步部署新版本到不同的机器上,确保稳定性。
9. **镜像录制与编译过程**:
- 讨论了如何录制一个镜像以及如何进行编译工作,特别是在C++环境下进行编译的具体步骤。
10. **职位相关问题**:
- 面试官介绍了公司主要业务方向(涉及GPU相关),并询问候选人对公司产品或行业了解的程度,甚至问到了一些非技术性的问题,比如公司员工购买GPU是否有优惠等轻松话题。
这些问题覆盖了从基础技能、项目经验到具体技术细节等多个方面,旨在全面评估候选人的技术水平、解决问题的能力以及适应企业文化的可能性。