职位描述
1.深入Kotlin Native运行时核心,使用C++实现DFX诊断系统,开发栈跟踪收集器、符号解析器、内存追踪器等核心模块,支持跨语言(Kotlin/C++/ArkTS)栈跟踪和内存分析,实现高性能的诊断和故障定位能力(性能要求:128层栈跟踪<100ms,500MB内存dump<3s)。
2.实现内存泄漏和OOM检测系统,Hook内存分配器实现对象分配追踪,构建引用关系图实现引用链分析,实现快照比较算法检测内存泄漏,提供OOM风险预警和诊断报告,帮助开发者快速定位内存问题。
3.优化DFX系统性能,实现符号缓存、异步符号化、采样追踪等优化策略,控制内存追踪开销(<10%),确保诊断功能不影响应用性能,平衡功能完整性和系统开销。
4.集成鸿蒙系统工具链,实现Hidumper内存信息提供者接口、Hiperf符号解析接口、Hiprofiler事件追踪接口,提供工具链数据格式转换,使鸿蒙系统工具能够分析Kotlin应用的内存和性能问题。
任职资格
1.本科及以上学历,计算机相关专业优先,具备5年及以上C++系统开发经验,精通C++11/14/17标准,深入理解C++内存管理、多线程编程、异步编程,有系统级编程和性能优化经验。
2.精通栈跟踪和符号解析技术,熟悉libunwind/libbacktrace的使用和原理,理解ELF格式和DWARF调试信息,能够实现高性能符号解析器(缓存、异步、批量处理),熟悉系统级调试技术(gdb、strace、perf)。
3.深入理解内存管理技术,熟悉内存分配器原理和Hook技术(函数拦截、LD_PRELOAD、dlsym),理解GC算法和引用计数机制,熟悉内存快照和dump技术,掌握图算法(DFS、BFS)实现引用链分析。
4.理解Kotlin Native运行时机制,能够阅读和理解Kotlin Native运行时C++源码,理解异常处理机制、内存分配流程、线程管理,熟悉运行时目录结构,能够定位和修改运行时源码(不需要精通Kotlin语言)。
5.深入理解操作系统原理和编译原理基础,理解进程、线程、内存管理、系统调用,理解编译流程、符号表、调试信息、链接过程,有系统工具链或运行时开发经验优先。
加分项
1.有内存分析工具或调试工具开发经验优先,开发过内存追踪工具(如Valgrind、LeakSanitizer)、内存泄漏检测工具、栈跟踪工具、符号解析工具,理解调试信息格式(DWARF、PDB)。
2.有系统工具链或运行时开发经验优先,有LLVM/Clang工具链开发、编译器后端开发、语言运行时开发(如JVM、V8、Swift Runtime)、GC实现经验。
3.有Android NDK或其他Native语言开发经验优先,理解JNI机制,有Native代码开发经验,理解跨语言互操作和内存管理。
4.对性能优化和系统调优有深入研究优先,有系统级性能优化经验,理解采样追踪、异步处理、缓存策略等优化方法,能够平衡功能和性能。
5.有鸿蒙平台开发经验优先,熟悉鸿蒙NDK和开发环境,理解Hidumper/Hiperf/Hiprofiler工具链接口,有系统工具链集成经验。
以担保或任何理由索取财物,扣押证照,均涉嫌违法,请提高警惕