祁迪的博客

企业级客户端技术探索:架构设计·性能优化·效能提升

先知.兵圣人机对抗赛是军方组织的兵棋 AI 对抗赛,目前只是在军方内部开放,我们是从某个外包上市公司接到这个项目的,上游需求方是某地方军事院校,情况比较复杂。很显然这个项目最终没有谈成,但这个比赛本身以及谈项目过程中的一些经验教训值得记录并反思。

Read more »

allocator 是 C++ std 中引入的,为了处理各种内存管理模式(比如共享内存、垃圾回收等)的内存分配问题,负责内存的分配、回收,对象的创建析构等。

Read more »

总结 (负面)

平淡、稳定,有点颓的一年, 去年立下的 flag 基本没有完成:

  • 早起
    • 起床比较随性,经常导致儿子上学迟到
  • 坚持写文章
    • 仅写了 2-3 篇文章,质量还非常粗糙
  • 深度思考
    • 除了需要解决项目问题时,其余时间基本没有思考
  • 步行或跑步
    • 比较懒,跑步计划基本没有完成,只跑了一个半马
  • 多读书
    • 仅读了几本猎奇类的书
  • 学会情绪管理
    • 经常对儿子吼

总结 (正面)

  • 调试能力++,学会使用 windbg 和 IDA 基本用法,能解决大部分 Crash 问题
  • 开始关注理财投资
Read more »

背景

我们公司的产品使用 libcurl 作为基础网络库,线上环境中经常会有域名解析失败导致的问题。libcurl 的域名解析默认情况下是调用系统 API 完成的,并且用户的网络环境可能比较复杂,比如:是否连接了代理服务器,是否开启防火墙,域名解析过程是不是被运营商劫持等等。所以对于此类问题,通常是只能在特定的机器和网络环境下复现,非常难确定具体原因。

Read more »

Chromium 这样庞大的工程,涉及超多的模块依赖,如何保证代码质量?源码中随处可见 xxx_unittest.cc 和 xxx_fuzzer.cc 这样的文件,它们是如何组织的呢?项目的每一个 Commit 需要执行哪些测试,流程是什么?Chromium 做了哪些基础的工作支持繁琐又重要的测试工作,我们是否可以借鉴用到自己的项目中?

Read more »

阅读源代码是程序员最重要的基本功之一,研读高质量的开源项目源码是进阶的必要手段。那么面对一个新项目时,如何高效快速地熟悉整个源码呢?

Read more »

买了公寓

买了一套公寓给父母住,总算是了却了心中一桩事

做了手术

左侧肩膀有个皮下肿物,每次洗澡都会关注是不是又长大,今年做了一个手术切掉了。病理分析结果是黑素纤维瘤,有恶变可能,幸亏及时割掉了。平时得多注意身体,发现有异常情况要及时去医院

Read more »

多线程是基础库非常重要的一部分,每个平台都有各自的多线程API,实现一套高效、易用的多线程基础库也是挺有挑战的。Chromium base库中有完整的跨平台thread封装和实现,本文主要整理一下Chromium 线程相关实现细节。

Read more »

背景

Runtime 是 Objective-C 特有的机制,iOS 进阶必须要掌握的知识点,面试过程中也会经常问。实际上也有很多开源库中,大量地使用 Runtime 来实现各种需求,比如大名鼎鼎的 JSPatch,YYModel 等。本文是我学习的笔记或随笔,内容可能比较散杂,由于 OC Runtime 内容很多,所以本文会不间断更新。先上一张思维导图,感受一下 OC Runtime 大体包含了哪些知识点。

Read more »
0%