重构 ltask 的任务调度器

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

ltask和skynet是用于管理多个线程的工具,但应用场景不同。ltask用于游戏客户端,优化目标是低延迟;skynet用于服务器,优化目标是高负载。ltask是Ant engine的基础设施之一,通过重构调度器提升性能。ltask支持复杂的调度器算法以降低绝对帧时间,还能提高任务处理能力。最终,ltask成功优化了性能,删除了独占线程服务特性。

🎯

关键要点

  • ltask和skynet都是管理多个线程的工具,但应用场景不同。

  • ltask用于游戏客户端,优化目标是低延迟;skynet用于服务器,优化目标是高负载。

  • ltask是Ant engine的基础设施之一,通过重构调度器提升性能。

  • 低延迟和高负载在某些方面是对立的。

  • 服务器优化应简化调度器,充分利用所有CPU核心。

  • 客户端需要复杂的调度器算法以降低绝对帧时间。

  • 调度算法会影响主任务的延迟。

  • ltask最初区分了共享工作线程和独占系统线程。

  • 独占线程服务的设计让开发者可以实现特殊的独占线程服务。

  • 重构后的ltask调度器支持将服务绑定在特定工作线程上。

  • 绑定特定工作线程未必是降低延迟的最优解。

  • 针对具体情况进行调优是任务调度器的优势。

  • 最终重构完成,ltask任务调度器在游戏上工作良好,达到了优化目标。

  • 成功删除了独占线程服务特性,简化了代码。

➡️

继续阅读