2.游戏战中陪伴助手微服务架构设计与应用- 太 bug 了,限制使用 方案探索——聚类统计 模仿大多数玩家的选择 - 实现方法: - 为玩家生成 [0, 1] 特征向量 - 聚类统计,存入 Faiss - 实时 Faiss 匹配召回 - 问题: - 特征过多(600多维),无法分析 - 聚类结果趋同 方案探索——关键帧 / 路径推荐 模仿某一个玩家的选择 - 专利:《一种在实时游戏对局中,模仿历史胜利玩家打法,并对当前玩家进行打法推荐的方案》 - 运营可闭环策略设计,开发无需介入 方案详述——完整架构 先对整个架构有一个大概的认识 - 消息队列消费:解耦 MQ - Token 清洗:事件翻译和 token 计算 - 推荐系统:策略召回和推荐 - 数据分析:离线策略挖掘和模型训练 - 管理平台:开发、运营、运维辅助 实现方案——Token 清洗 Token 清洗服务完整流程 - 挑战:150+类 token,如何高内聚,降低 合并 show_common、 router、rerank、rank、recall - 合并后:7000(30% ↓ ,相较合并前 62% ↓ ) 计算方法上,召回占据大头 召回效率优化——算法优化 这完全可以出一道算法题 召回效率优化——算法优化 - 分析维度: - 复杂度对比(红色表示显著影响复杂度的维度): - 结论 - 时间复杂度:前缀树 < 有向无环图 < 倒排索引 < 遍历0 码力 | 47 页 | 11.10 MB | 1 年前3
使用Go与redis构建有趣的应用(bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 混合) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 主多从,内建⾼高可⽤用) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) •0 码力 | 176 页 | 2.34 MB | 1 年前3
2.2.6 字节跳动在 Go 网络库上的实践Multisyscall 2. TCP ZeroCopy 4. io_uring 1. 单连接多路复用(ZeroCopy) 单连接多路复用 – 组包/拆包 Msg Msg Msg Msg Msg Msg Msg Msg Conn write read Buffer Buffer 单连接多路复用 – ZeroCopy LinkBuffer Conn writev readv LinkBuffer0 码力 | 42 页 | 3.19 MB | 1 年前3
2.4 Go 1.4 runtimeMicrosoft Windows 系统不⽀支持 madvise。 3. Goroutine Scheduler 并发调度器 goroutine. 轻量级实现,支持创建成千上万并发任务。 线程多路复用。 极小自定义初始栈。 任务在多个线程间切换。 scheduler. 三种抽象模型协作。 M G P thread CPU core VM task scheduler0 码力 | 29 页 | 608.57 KB | 1 年前3
Go 入门指南(The way to Go)计者通过 goroutine 这种轻量级线程的概 念来实现这个目标,然后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存 编程语言在这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它的构 Erlang)。 在 Go 中,应用程序并发处理的部分被称作 goroutines(协程) ,它可以进行更有效的并发运算。在协 程和操作系统线程之间并无一对一的关系:协程是根据一个或多个线程的可用性,映射(多路复用,执行 Go入门指南 - 309 - 本文档使用 看云 构建 于)在他们之上的;协程调度器在 Go 运行时很好的完成了这个工作。 协程工作在相同的地址空间中,所以共享内存的方式一定是同步的;这个可以使用0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)设计者通过 goroutine 这种轻量级线程的概念来实现这个目标,然 后通过 channel 来实现各个 goroutine 之间的通信。他们实现了分段栈增长和 goroutine 在线程基础上多路 复用技术的自动化。 这个特性显然是 Go 语言最强有力的部分,不仅支持了日益重要的多核与多处理器计算机,也弥补了现存编程语言在 这方面所存在的不足。 Go 语言中另一个非常重要的特性就是它 Erlang)。 在 Go 中,应用程序并发处理的部分被称作 goroutines(协程) ,它可以进行更有效的并发运算。在协程和操作系统 线程之间并无一对一的关系:协程是根据一个或多个线程的可用性,映射(多路复用,执行于)在他们之上的;协程 调度器在 Go 运行时很好的完成了这个工作。 协程工作在相同的地址空间中,所以共享内存的方式一定是同步的;这个可以使用 sync 包来实现(参见第 9.30 码力 | 466 页 | 4.44 MB | 1 年前3
共 6 条
- 1













