云兄您好,我正在做Windows版本的移植(非Cygwin或者MinGW,而是支持VS) #1231
Replies: 17 comments
-
为啥不用 wsl2 |
Beta Was this translation helpful? Give feedback.
-
用了。 自己做一遍有助于更好理解skynet。 |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
收到! |
Beta Was this translation helpful? Give feedback.
-
我试了mimalloc |
Beta Was this translation helpful? Give feedback.
-
看到了,多谢提醒。 |
Beta Was this translation helpful? Give feedback.
-
VLA 可以用 原子指令替换的时候,需要看清楚字长。 jemalloc 对于 skynet 是可选的,只为开发目的,完全可以去掉。 |
Beta Was this translation helpful? Give feedback.
-
在lua_memory.c中,
LUAMOD_API int
luaopen_skynet_memory(lua_State *L) {
luaL_checkversion(L);
luaL_Reg l[] = {
{ "total", ltotal },
{ "block", lblock },
{ "dumpinfo", ldumpinfo },
{ "jestat", ljestat },
{ "mallctl", lmallctl },
{ "dump", ldump },
{ "info", dump_mem_lua },
{ "current", lcurrent },
{ "dumpheap", ldumpheap },
{ "profactive", lprofactive },
{ NULL, NULL },
};
luaL_newlib(L,l);
return 1;
}
引用了mallctl等函数,它又使用了je_mallctl,只有je才有;还有个别别的函数也有对je_的使用。
请问是否可以去除?
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
发件人: 云风<mailto:notifications@github.com>
发送时间: 2020年8月10日 12:36
收件人: cloudwu/skynet<mailto:skynet@noreply.github.com>
抄送: Yilin Yang<mailto:yyl_20050115@hotmail.com>; Author<mailto:author@noreply.github.com>
主题: Re: [cloudwu/skynet] 云兄您好,我正在做Windows版本的移植(非Cygwin或者MinGW,而是支持VS) (#1231)
VLA 可以用 _alloca 代替。
原子指令替换的时候,需要看清楚字长。
jemalloc 对于 skynet 是可选的,只为开发目的,完全可以去掉。
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<https://github.com/cloudwu/skynet/issues/1231#issuecomment-671158005>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AGE5LX6LMP5NL4SV6HO2NGLR752MHANCNFSM4PY3GBUA>.
|
Beta Was this translation helpful? Give feedback.
-
https://github.com/cloudwu/skynet/blob/master/skynet-src/malloc_hook.c#L39 定义了 |
Beta Was this translation helpful? Give feedback.
-
OK,已定义NOUSE_JEMALLOC
请问使用mimalloc有什么要注意的事项吗?
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
发件人: 云风<mailto:notifications@github.com>
发送时间: 2020年8月10日 17:16
收件人: cloudwu/skynet<mailto:skynet@noreply.github.com>
抄送: Yilin Yang<mailto:yyl_20050115@hotmail.com>; Author<mailto:author@noreply.github.com>
主题: Re: [cloudwu/skynet] 云兄您好,我正在做Windows版本的移植(非Cygwin或者MinGW,而是支持VS) (#1231)
https://github.com/cloudwu/skynet/blob/master/skynet-src/malloc_hook.c#L39
定义了 NOUSE_JEMALLOC 后,这些函数都将被空函数替换掉。
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<https://github.com/cloudwu/skynet/issues/1231#issuecomment-671247975>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AGE5LX3NOKRFHGUJW2V6UTLR763HFANCNFSM4PY3GBUA>.
|
Beta Was this translation helpful? Give feedback.
-
请问,启动之后出现 可能是什么原因呢? |
Beta Was this translation helpful? Give feedback.
-
看看这个 |
Beta Was this translation helpful? Give feedback.
-
问题的原因已经找到了,
ATOM_CAS
Oval 和nval 在interlockedexchanged 的时候写反了(和gcc的intric顺序正好相反),移植的时候没有注意到。
发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用
发件人: 风---自由<mailto:notifications@github.com>
发送时间: 2020年8月12日 11:26
收件人: cloudwu/skynet<mailto:skynet@noreply.github.com>
抄送: Yilin Yang<mailto:yyl_20050115@hotmail.com>; Author<mailto:author@noreply.github.com>
主题: Re: [cloudwu/skynet] 云兄您好,我正在做Windows版本的移植(非Cygwin或者MinGW,而是支持VS) (#1231)
看看这个
#1195<#1195>
―
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub<https://github.com/cloudwu/skynet/issues/1231#issuecomment-672549207>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AGE5LX6LXR6P7BYU4UNAMGLSAIDWNANCNFSM4PY3GBUA>.
|
Beta Was this translation helpful? Give feedback.
-
目前基本上可以正常运行。但是还是会出 maybe in endless loop 消息。 欢迎使用,并指出BUG。 |
Beta Was this translation helpful? Give feedback.
-
InterlockedCompareExchange 如果比较不成功,也返回原始值 |
Beta Was this translation helpful? Give feedback.
-
这里加个大括号,防止误用
|
Beta Was this translation helpful? Give feedback.
-
云兄您好,
我正在做Windows版本的移植(非Cygwin或者MinGW,而是支持VS)
请容我汇报一下情况:
Jemalloc 用的是VS2017的项目文件,用autogen.sh生成,参数符合,
./autogen.sh --with-jemalloc-prefix=je_ --enable-prof
因为和linux以及其它版本配合的不好(目前不知道怎么才能处理好),
所以单独做了一个Jemalloc-w32,
原来的Jemalloc还是作为submodule存在。
pthread用的是pthread-w32。
epoll用的是wepoll,直接包含了代码在项目里面。
daemon 模式没有开启。
代码尽量按照原来的意思做了少许改动,比如,
VS编译器不支持C99局部变长数组,所以改成了malloc分配。
目前的问题:
_sync* 这类函数VS里面没有,而是有_interlocked* 函数,
不知道是否正确对应了。pthread_mutex肯定很慢,
不如spinlock,但还是由于上述问题,没敢打开。
还有很多可能出错又很隐蔽的地方……
能编译通过(同时调整了linux版本),但还没敢运行……
请问,调试或者测试的话,从哪个lua脚本运行比较好,能尽可能测出错误的地方?
主要还是刚接触这个框架,不够熟悉。
请多指教,
杨逸霖
项目地址:https://github.com/yyl-20020115/WinSkynet
Beta Was this translation helpful? Give feedback.
All reactions