V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  gantleman  ›  全部回复第 4 页 / 共 9 页
回复总数  179
1  2  3  4  5  6  7  8  9  
2020-08-10 14:37:51 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@danc 你提出了一个有趣的问题,我没有理解错的话是想问 rust 和 go 在并行上和 pelagia 有什么区别。简单说 go 和 rust 会死锁,pelagia 不会。深入的说 go 和 rust 通过放弃对线程间共享数据的管理。来减少工程的复杂程度。也许开发者仅仅不想处理这么复杂的问题,或则没想好怎么处理这么复杂的问题。去掉共享数据的管理在技术水平上就相当于自降一级。假设有一天软件工程师在做开发的时候,不需要考虑语言错误问题,存储错误问题,网络错误问题。那不表示这些问题天生不存在。哪仅仅是因为所使用系统语言或工具将这些问题处理掉了。
2020-08-10 10:41:08 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@swulling 在讨论任何事情的时候都要设置一个合理的前提,pelagia 就是一个小团队项目。为了最大可能兼容单片机和任何其他种类的客户端所以不会引入网络功能。预计最终代码不会超过 5 万行。随着项目的稳定也必然会添加防御相关的代码。工程开发有其过程,核心功能都不完备的情况就添加各种防御,哪么核心功能发生变化后防御代码怎么办?这些防御的代码文或档在大团队下对团队协作是必须。我带团队也天天强调文档和防御的重要性。强调文档的重要并不意味真的就比核心功能还重要。核心功能都没有的话,这个帖子就不存在了。以上内容都是我猜测的,因为你没有说出为什么文档比核心功能更重要的原因。希望能坦诚告诉我。至于开发习惯,是不是因为我一直写个人项目或则小团队项目,没有大公司成熟代码的习惯。还是因为 pelagia 本身是开源项目而没有把大公司病带入这个项目。或则大公司的代码是不是因为文档就更加强壮。这个命题真的很大,涉及到多个软件管理的领域。当然我也有兴趣和你聊聊开发管理的问题。小团队,大团队,公司角度的管理都不同。侧重点也各有不同。但无论什么时候软件按时,按质,按要求做出来。对公司,对团队,对团队领导才是最重要。无论小项目,大项目,团队项目。都要认真对待做出成绩。我能力也有不足的地方,对于细枝末节把空的并不好。也欢迎有兴趣,志同道合的开发者加入进来。
2020-08-08 23:01:56 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@no1xsyzy 很抱歉最近很忙,在准备用 pelagia 冲刺 3D 同屏 1 万人的目标。functionPoint 会在 3 个地方被使用。分别是 job 的 885 行,919 行,954 行,和用户相关的是 919 行这段。

这段表示表示如果是 C 函数指针类型直接执行调用执行,如果失败将回滚数据库事物。
if (pEventPorcess->scriptType == ST_PTR) {

if (0 == pEventPorcess->functionPoint(pOrderPacket->value, plg_sdsLen(pOrderPacket->value))) {
job_Rollback(pJobHandle);
}
}
2020-08-07 12:02:55 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@xsen 是的,软件工程的特点就在不断进化。对于纸带机所有开发和编译都是设计管理问题。我们知道后来这些都被编译器和操作系统取代了。软件工程的自动化,平台化,排斥人工的特点是诞生之日起就深入骨髓的。
2020-08-05 17:19:22 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@no1xsyzy 推荐你看下另一帖子 www.v2ex.com/t/695286#reply20 。我这人确实有些狂妄,因为我一直在并行技术的最前沿疯狂尝试。解决一些国内几年都解决不了的技术问题并分享给大家。开发过程中每个人使用语言的习惯都不相同。可以贴出来不好懂的代码我来慢慢讲。
2020-08-04 20:38:53 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@tcfenix
@sunny352787
谢谢,谢谢
2020-08-04 18:38:08 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@livid 真的要好好夸夸你,谷歌的中文优化做的真棒。第二天就排到了云风 blog 的后面。相位技术 14 年出来的,是魔兽游戏服务器的核心技术。到今天国内都不能出仿制品。无数的大牛在这个技术上折戟沉沙。我就这么免费给大家拿出来了,给各位也卖个热闹好看。各位看过的爷,有钱的捧个钱场,没钱的捧个人场。谢谢您了。
2020-08-04 17:36:20 +08:00
回复了 CrisTao 创建的主题 程序员 疑问,外国程序员都不写 blog 的吗?
blog 是日常个人记录,老外这点分的很清楚。
2020-08-04 14:14:11 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@Acoolda 是的所以要加限制,使用九宫格,81 宫格,六变格的技术进行过滤。
我发了个文章因为链接到知乎专栏也被小黑屋,谁要是能写一篇 v 站小黑屋指南就好了。哈哈哈
2020-08-04 10:27:11 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@des 是的,因为相当于用 io 换 cpu 的并行,这里没有计算网络带宽和硬盘极限,每个服务器的封包大小不太好估算。最后的瓶颈可能会出现在内网或外网带宽上。
2020-08-04 10:23:23 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@mattx 没做过太多游戏,只完整上线过四个游戏。
1,估值当然要按最高标准来做的。毕竟游戏质量的选择不是技术决定的。60 也好 30 也好是老板决定的。
2,游戏信息放在哪里要根据性能做选择。因为没有 redis 之前我们也自己开发缓存服务器。如果能保证自己的开发的缓存服务器好于 redis 也可以不用 redis 。在这里 redis 作为通用工具也是事实的标准,作为技术贴容易交流。并且这个技术并不局限于游戏,车辆,船舶,飞机的调度都可能使用。
3,redis 在这里作为关键节点承担了计算和存储的压力,理论上一个用户可以一个服务,压力比关键节点小很多。
4,wow 的相位技术公布很久了,可能你对这方面关注不多吧。
5,这篇文章讨论的是同服也是同场景的问题,因为同服就意味着玩家可能会集中到 1 个地图场景。所以并没有在文章强调同服,同地图还是同场景。也没有限定只能同服不能同地图和同场景。

以前玩过魔兽模拟器,因为当时模拟器是单线程的性能非常差。自己改写过一个多线程版本可以跑 2 千人同场景。官方后来改名大芒果,再后来的 trinitycore 就没接触了。
2020-08-04 09:52:00 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@ArchiTech 有路径的情况下会好些,因为路径算法本身也是吃 cpu 。相位技术的本质就是对 cpu 的分配。是用 io 换效率的方法。空间定位是所有模拟环境的的基础,包括现实中车船飞机的调度,人员定位协作等。并不局限于游戏。
2020-08-04 05:37:58 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@huntcool001 也可以每秒提交一次,但这样角色的动作就会看起来不自然。
2020-08-03 18:23:44 +08:00
回复了 gantleman 创建的主题 推广 使用 redis 实现 5 万人同服的“相位技术”
@smallpython 魔兽的服务器是商业秘密,不清楚具体实现方式。如果请我帮忙诊断,报销来回车费,我可以考虑帮他们看看。嘿嘿
2020-08-02 21:41:32 +08:00
回复了 gantleman 创建的主题 程序员 拯救多线程混乱的 pelagia
@tairan2006 我想合约化编程或着人与人的约定是不能解决这个问题的。保证代码的强壮的方法是要深思熟虑,内部讨论,反复 review,交叉 review,白盒测试,黑盒测试,压力测试。没有任何开源软件会仅凭人与人的约定(口头,注释或其他)就允许提交 path 。既然选择了开源的方式,我欢迎有能力保障开源社区健康发展的人,在深入了解 pelagia 项目之后加入进来。
随着项目的发展,我对提交代码越来越谨慎。前天我在考虑使用 pelagia 处理广告集合竟价中存在的功能缺陷。通常这种情况下我会先列个功能提纲,尽可能把想到的功能都加上去。而通常两三天后我就会发现有些功能是多余的。反复思考后发现只有补充一到两个接口就可以了。有些极端情况,例如处理“相位技术”就需要创建大量的缓存镜像。可能会导致内存急速膨胀。我犹豫了半年多要不要加入进来。因为在单片机或工业机上对内存要求会比较苛刻。通常情况下不会需要大量存储换效率的情况。
1  2  3  4  5  6  7  8  9  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1067 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 19:06 · PVG 03:06 · LAX 12:06 · JFK 15:06
Developed with CodeLauncher
♥ Do have faith in what you're doing.