尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

skynet——sharetable学习

skynet——sharetable学习
📅 发布时间:2026/7/7 15:19:10

概念

进程内多 Lua VM 之间的数据共享机制

解决问题

skynet 每个服务是独立 Lua VM,如果 100 个服务各 load 一份 500KB 的配置表,就是 50MB 浪费。

演进过程

sharedata(老方案,云风早期设计)

实现思路

  1. 由一个 sharedatad服务把 table 序列化成 C 层的 lightuserdata​ 存起来

  2. 其他 VM 通过 sharedata.query(name)拿到这个指针

  3. 每个 VM 用 metatable 代理​ 从 lightuserdata 里查字段,并建 proxy 缓存已查过的 key

    配置表 → C 层 lightuserdata ←→ 各 VM 通过 metatable+proxy 访问

优点:惰性展开,初次 query 快,热更后旧数据易回收

缺点:每次访问要走 metatable → C → 回 Lua,proxy 随服务数膨胀,访问慢、内存占用随服务数涨

sharetable(2019 年后新方案)

直接改了 Lua VM 的实现,允许多个 VM 共享只读的原生 Lua table,且不参与 GC

优点:等价于访问本地 Lua table,无 metatable、无 proxy、不进 GC,实测比 sharedata 快 5~25 倍

缺点:热更麻烦——旧 table 要等所有引用服务退出才能释放;C 层内存占用更大

选型口诀

💡 不常更新的大配置用 sharetable,常更新的小配置用 sharedata

  • 数值表、道具表、技能表 → sharetable(一次加载反复读)

  • 运营活动配置、开关类 → sharedata(热更友好)

相关新闻

  • WSEN-ISDS IMU与PIC18微控制器的运动感知系统设计
  • MC6470与R7FA4M3AF3CFB144的高精度运动控制方案
  • 2026年实测12款论文AI智能降重工具,效果最稳的竟然是它!

最新新闻

  • Pixelle-Video完整教程:如何在5分钟内制作专业AI短视频
  • Hugging Face从零开始的、保姆级的详细教程
  • 如何快速配置 qBittorrent 搜索插件:新手完整指南
  • TS2007FC与TM4C129EKCPDT音频系统设计与优化
  • 基于Si4731与PIC18F67K40的嵌入式收音机开发指南
  • 高精度定时系统设计:MIC1557与PIC18F86J16应用实践

日新闻

  • Android逆向分析全能助手:集成化工具链与自动化工作流设计
  • 面搜索(Faceted Search)原理与工程实践指南
  • 神经网络调参避坑指南:从5个常见Loss曲线形态定位超参数问题

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号