lua 5.1 分支语句 bytecode 的生成(一)
本文只对 IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END 语法的字节码生成过程进行描述。 生成的结果 首先我们看下面的示例,仅为演示: local cond1 = true local cond2 = true if cond1 then cond1 = false elseif cond2 then cond2 =
本文只对 IF cond THEN block {ELSEIF cond THEN block} [ELSE block] END 语法的字节码生成过程进行描述。 生成的结果 首先我们看下面的示例,仅为演示: local cond1 = true local cond2 = true if cond1 then cond1 = false elseif cond2 then cond2 =
lua gc 调优主要涉及到两个两个参数setpause和setstepmul,使用方法如下: collectgarbage("setpause", 200) collectgarbage("setstepmul", 200) 这两个值的默认值都是200,那么这代表着什么意思
最近我们的项目有多个core, 使用gdb查看如下: (gdb) info threads Id Target Id Frame 5 Thread 0x7f28943d9700 (LWP 11079) 0x00007f2895cc5c03 in epoll_wait () at ../sysdeps/unix/syscall-template.S:81 4 Thread 0x7f2895bdc700 (LWP 11076) 0x00007f2895cbcaed in poll () at ../sysdeps/unix/syscall-template.S:81 3 Thread 0x7f28953db700 (LWP 11077) 0x00007f2895cc5c03 in epoll_wait () at ../sysdeps/unix/syscall-template.S:81 2 Thread 0x7f2894bda700 (LWP 11078)
进行游戏服务器开发时,我们将C++的部分称之为引擎层,而lua称之为脚本层。但是往往有些核心逻辑是各个游戏公用的, 或者说有些引擎层的代码用C
在C++/lua混合编程中,往往存在需要回调的情况。比如在游戏中,逻辑进程中的脚本需要一个数据库访问操作,如下: dbmgr.query({name="hello"}, function(ret) -- do something end) 由于dbmgr.
现在很多游戏引擎都是C++ + lua的结构,一旦某个服务器开发人员大意写出死循环代码,很容易导致服务无响应,影响服务器稳定。所以引擎中最好能提
动机 最近在整理C++11中的新增特性,其中有一个alignas关键字。在学习这个的时候顺便研究了 下C/C++中的字节对齐问题,发现有很多可以
在编译动态链接库时,为了保证能被正常使用,一般我们会加上-fPIC参数。在使用的动态链接库中的函数时,Linux使用了一种 叫延迟绑定的技术实
hugo是一个比hexo更简单易用的静态页面生成工具,其只有一个可执行文件,部署环境简单,本博客就是基于hugo构建的。 我们在写博客的时候经
Table 在Lua中有着极其重要的应用,从核心语言实现,如short string intern, 到利用metatable实现的class,table几乎无所不能