behaviac icon indicating copy to clipboard operation
behaviac copied to clipboard

运行时间长了会有一个崩溃的问题

Open adjs6157 opened this issue 7 years ago • 18 comments

qq 20181030114720

adjs6157 avatar Oct 30 '18 03:10 adjs6157

是不是我哪里用的不对了,我们的服务器是多线程的,没个线程会跑多局比赛,开始比赛的时候会behaviac::Agent::Create实例,比赛结束的时候会behaviac::Agent::Destroy,我大概看了下这个堆栈的流程,看不出来有什么明显的问题,有大神帮忙看下吗

adjs6157 avatar Oct 30 '18 04:10 adjs6157

这个问题不是毕现的,可能跑个一两天出现一次

adjs6157 avatar Oct 30 '18 04:10 adjs6157

behaviac不支持多线程,需要自己修改才能用于多线程环境

赵阔

在 2018年10月30日,下午12:21,adjs6157 [email protected] 写道:

是不是我哪里用的不对了,我们的服务器是多线程的,没个线程会跑多局比赛,开始比赛的时候会behaviac::Agent::Create实例,比赛结束的时候会behaviac::Agent::Destroy,我大概看了下这个堆栈的流程,看不出来有什么明显的问题,有大神帮忙看下吗

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

kecookier avatar Oct 30 '18 04:10 kecookier

在多线程环境下是可以跑得,就是会有这个崩溃,请问下需要修改哪些才能支持多线程呢

adjs6157 avatar Oct 30 '18 06:10 adjs6157

我们是一个线程只跑一个比赛,不会夸线程的,但是behaviac这些static的接口应该是跨线程的,是因为这些static的接口不支持多线程吗

adjs6157 avatar Oct 30 '18 07:10 adjs6157

赵阔

在 2018年10月30日,下午3:14,adjs6157 [email protected] 写道:

我们是一个线程只跑一个比赛,不会夸线程的,但是behaviac这些static的接口应该是跨线程的,是因为这些static的接口不支持多线程吗

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

kecookier avatar Oct 30 '18 08:10 kecookier

可以指导下怎么改吗,感谢~

adjs6157 avatar Oct 30 '18 08:10 adjs6157

可以指导下怎么改吗,感谢~

请问你这边改好了吗?. 目前我也打算想改. 看了下要改的地方蛮多的.

可以参考一下吗

BeanTang avatar Nov 22 '18 03:11 BeanTang

修改了一下分支名字,具体代码可以参考 https://github.com/kecookier/behaviac/tree/multithread

kecookier avatar Nov 22 '18 09:11 kecookier

修改了一下分支名字,具体代码可以参考 https://github.com/kecookier/behaviac/tree/multithread

谢谢~

BeanTang avatar Nov 22 '18 10:11 BeanTang

修改了一下分支名字,具体代码可以参考 https://github.com/kecookier/behaviac/tree/multithread

可是我看了一下 C#版本里面 /integration/unity/Assets/behaviac 的内容好像并没有改动.

我是服务器里面用的C#版本使用的. 因为我没有用过Cmkae.目前是直接把项目文件拖进来使用的.

build文件夹里面的cmake_generate_projects.bat 也可以构建给 C#版来使用吗?

BeanTang avatar Nov 22 '18 10:11 BeanTang

c#版本的没改过,我用的是c++版本的

赵阔

在 2018年11月22日,下午6:26,BeanTang [email protected] 写道:

修改了一下分支名字,具体代码可以参考 https://github.com/kecookier/behaviac/tree/multithread

可是我看了一下 C#版本里面 /integration/unity/Assets/behaviac 的内容好像并没有改动.

我是服务器里面用的C#版本使用的. 因为我没有用过Cmkae.目前是直接把项目文件拖进来使用的.

build文件夹里面的cmake_generate_projects.bat 也可以构建给 C#版来使用吗?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

kecookier avatar Nov 22 '18 10:11 kecookier

c#版本的没改过,我用的是c++版本的 赵阔 在 2018年11月22日,下午6:26,BeanTang @.***> 写道: 修改了一下分支名字,具体代码可以参考 https://github.com/kecookier/behaviac/tree/multithread 可是我看了一下 C#版本里面 /integration/unity/Assets/behaviac 的内容好像并没有改动. 我是服务器里面用的C#版本使用的. 因为我没有用过Cmkae.目前是直接把项目文件拖进来使用的. build文件夹里面的cmake_generate_projects.bat 也可以构建给 C#版来使用吗? — You are receiving this because you commented. Reply to this email directly, view it on GitHub, or mute the thread.

我看了一下commit..C++版本只要改动这么少的吗.. 我这边C#版本的正在更改当中. 原来可能会出现 添加 Agent时throw same key的问题.(我是一个进程上同时在不同的地方可能同时进行使用..) ..基本上都快要把所有static的都去掉了要...

请问内部有不能改的static的内容吗(可能会导致behaviac运行失败或异常)?

BeanTang avatar Nov 22 '18 11:11 BeanTang

我修改了Context的用法,所以看起来改动不太大。C#版本的代码没有研究过,C++版本里的代码有一些static变量是可以不修改的。

kecookier avatar Nov 22 '18 11:11 kecookier

我修改了Context的用法,所以看起来改动不太大。C#版本的代码没有研究过,C++版本里的代码有一些static变量是可以不修改的。

.我在生成的行为树的类里面 .调用方法 把 异步的回调result.大量只执行会不会导致cpu占用过高的问题? 现在使用行为树战斗状态中cpu就80 90...

BeanTang avatar Jan 24 '19 11:01 BeanTang

我修改了Context的用法,所以看起来改动不太大。C#版本的代码没有研究过,C++版本里的代码有一些static变量是可以不修改的。

.我在生成的行为树的类里面 .调用方法 把 异步的回调result.大量只执行会不会导致cpu占用过高的问题? 现在使用行为树战斗状态中cpu就80 90...

不太明白你说的"大量执行"是什么意思,我使们用behaviac的release版本,目前没有发现性能有问题。

kecookier avatar Jan 24 '19 12:01 kecookier

我也遇到过服务器运行一段时间后就崩溃的问题,游戏是单进程的。

linssa avatar Feb 10 '23 08:02 linssa

您好!我是吴莫海!您给我的邮件我会尽快给您回复。谢谢!

wumohai avatar Feb 10 '23 08:02 wumohai