自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (3)
  • 收藏
  • 关注

原创 MyDog--核心--GC

而mydog的gc算法却是针对mydog的内存布局设计的特定算法。首先我们要搞清楚,gc是为了啥?就是方便编码,程序员只需要new,不需要关心如何delete。gc就是内存管理的一类算法,基本上都是通用型的大路货,鲜有专门为特定情况设计特定算法。本质上就3种算法:标识法、引用计算、内存拷贝。gc最核心的是垃圾回收的时机!MyDog设计的gc算法,本质是。延后释放+引用失效+内存池。,在C++中用指针实现)打破时机后,数据跟随释放。释放(归还给池)时机。

2024-06-05 17:02:15 622 2

原创 MyDog--核心--定时器

MyDogTimerMgr是一个高效,高精度的定时器管理器.前后端都合适,无须担心定时器多了,整个应用效率会下降.当然,并发的定时器,谁都扛不住.MyDogTimeCD虽然没有事件注册,但是还是很实用的,具体哪里用到,可以看源码.秒容器60个vector列表,分容器60个,时容器24个,具体实现看源码。秒定时器的返回结果比毫秒定时器的丰富,多了个暂停和挂起.很久以前就设计过定时器.所以基本都是抄现有的逻辑的.当然是单线程的.....

2024-05-23 08:04:02 303

原创 MyDog--核心--寄存器

寄存器是一个双向列表。它的数据来源于栈优先的堆栈内存中,数据里面存放input和temp的数据,output在上一个寄存器的temp里。一个函数运行体对应着一个寄存器,寄存器的数据大小由编译时确定。寄存器的是否归还,是指寄存器用完(函数运行体执行完毕)的时候,如果寄存器开始指针指向堆内存开始位置,那么就需要把指向的堆内存归还给内存池。如上,如果栈内存不够,就在堆上存放寄存器数据,所以寄存器数据2和3并不是连续的。

2024-05-18 22:56:44 165

原创 MyDog--核心--函数运行体

如果考虑到类型,而且算术运算只考虑int,double,int128,那么如果再展开的话,一条a=b+c的加法要分裂成9条指令!Lua的算术指令是14条,lua的一条指令被压缩成一个int32的数值,内存是少了,但是我的设计是加载后,把指令展开,空间换时间,这点内存的牺牲是很值的。:执行某个脚本函数的过程,所涉及到的寄存器,记录器,指令列表,当前循环所需的临时变量等,它们之间以某种优化的搭配方式组合起来,在面向各种各样的情况下(如挂起,恢复,调试,异常等),如何确保脚本的正确执行的方法叫函数运行体。

2024-05-18 22:50:55 1609

原创 MyDog--类型--flag

我们经常需要一些bool数组来做一堆标识,其实一个bool占1bit就够了。所以我设计了MDFlag类,代码很简单,但是很实用。所以当作个基本类型使用。我是直接在c#版本里抄过来的,其实我有个c#版本的vm!

2024-05-09 14:58:59 141

原创 MyDog--内存--pool

由于主要服务于属性集,所以可以在编译前知道各种属性集大小,从而得出PoolConfItem。配置内容,可结合TCMalloc小内存的参数,以及由工具分析出来的配置。s2index函数是很有用的,rs返回真实内存块大小。在这个基础上,对这些池进行管理,于是就有了。具体的cpp看源码吧...

2024-05-09 09:36:10 248

原创 MyDog--工程项目

MyDogVM只是一个解释型的脚本虚拟机,它并没有io读写能力,也没有专门的log功能等,这些都是由外部框架提供.另外MyDogVM是设计成单线程的,所以内部没有锁.很纯粹!协程功能也是外部框架提供.MyDogSharp的输出目录里有个叫finish.bat的文件,用于把生成接口拷贝到MyDogCross里的CSharpApp(c#控制台)的生成目录里.跨平台的时候,针对语言进行库的封装,比如c#,通过MyDogSharp(c++的动态库),导出一些对外使用的接口,生成dll/os等。

2024-05-08 09:35:25 288

原创 MyDog--类型--浮点数

基于上述2点,我打算自己封装个以整数存储的浮点数.统一精度,解决上述2个问题.唯二代价就是取值范围缩少和运算时候多了一步个乘/除运算.原理很简单,假设精度是0.0001(即万分比),那么转换成自定义浮点数的时候,数值要除以0.0001。但对C++来说,可以不管的...我window和linux都运行过测试代码.以下代码是为了非mdfloat数值和mdfloat相运算,这里只写了加法。浮点数有2个问题,精度问题和数据不一致问题.以下代码是为了得到真实的float值。首先是定义个全局的精度。

2024-04-28 21:32:55 247

原创 MyDog--前言和目录(附源码链接)

自己做个新轮子,强类型的脚本语言。

2024-04-28 12:25:39 175

原创 MakeEditor--标准篇(1)--蓝图

为了让大家更好的了解MakeEditor,所以先画个饼.

2024-04-27 11:12:25 130

原创 MakeEditor--笔记篇(3)

资源的访问,窗口size等,都需要js获取,然后提供给c#调用....blazor居然连这些基础的东西都不封装好...也是无语...而且很多东西还是要依靠js,而不是wasm....另外skia也有js版本的!本来想每种端都实现同一个模块的功能这样的,现在要改变思路,先实现桌面端的框架,然后再实现移动端,最后才是web端.最重要的一点是blazor本来就是一套webui啊....我在这框架中再做一个ui框架?silk.net目前是不支持web端的!都是skiasharp自带的例子...

2024-04-21 23:09:47 277 1

原创 MakeEditor--笔记篇(2)

内容和上篇window,除了input那块有点出入外,就是渲染那块,一个是creategl,一个是creategles。这个demo的意义是,证明跨平台而已,那些input和render事实上可以统一成一个叫core的模块.目前silk.net,包括maui,都不支持android 14,所以模拟器使用了12。其实使用silk.net就是为了3d,但要把2d的gui标准化后才实现!如下比较 (左window,右。之后都是围绕着框架这块展开...

2024-04-12 09:07:39 338 3

原创 MakeEditor--笔记篇(1)

WindowOptions有对window的控制,比如隐藏标题栏,最大最小窗口.自定义标题栏的基础就这这里.照抄了silk.net的hellworld的例子,源码目录MakeEditor\note\window里.控制台是可以隐藏的!就是把生成类型改成window应用。桌面跨平台从控制台开始。

2024-04-04 22:34:04 179 1

原创 MakeEditor--所有链接

MakeEditor--笔记篇(前言)-CSDN博客

2024-04-04 16:21:48 180 1

原创 MakeEditor--笔记篇(前言)

商业篇:制作各种插件,满足游戏的各种开发需求.这些插件源码可能有偿提供,但是原理和效果,都会在博客上有详细说明.笔记篇:代码是很随意的,都是测试使用,每个测试项目都有结论.主要用于探讨思路和验证猜想.MakeEditor目标:制作各种跨平台工具,特别是编辑器的框架.优先围绕游戏制作.:地编/动画编辑/特效编辑/UI编辑/剧情编辑/表格导入导出/等等.正式篇:标准代码,优化性能,满足开发插件的要求.:运营工具/运维工具/需求管理 等。我们做游戏是有很多工具需求的,:协议定义/脚本编辑和调试/,

2024-04-03 22:58:41 235

原创 vs2019 win10 WSL C++ 一个程序加载*.a 和*.so库的注意事项

vs2019 win10 WSL C++ 一个程序加载*.a 和*.so库的注意事项1,创建3个项目,一个是Linux的控制台叫Cmd,一个是Linux的静态库叫testA(生成名字叫libtestA.a,其头文件目录叫HA),一个是Linux的动态库叫testS(生成名字叫libtestS.so,其导出的头文件目录叫HS)2,Cmd会调用testA和testS的内容,而且项目都是独立的,没有相互引用3,这里只说一下项目属性的注意地方:调试的工作目录:不要使用宏,因为会生成win的路径,这样

2020-08-09 23:18:33 1968

原创 Antlr4 vs2019 c# 成功版

如题所示1、使用vs2019(紫色图标),而不是blend for vs2019!!!2、必须安装java环境,并下载下载antlr-4.7.2-complete.jar(参考https://blog.csdn.net/fireghost57/article/details/92080428)3、用nuget安装,PM命令:Install-Package Antlr4.Runtime....

2019-10-11 21:40:04 2765 1

Alternativa3D 8.17.0 中文API文档

Alternativa3D 8.17.0 中文API文档

2012-12-08

C++ 程序员面试宝典

介绍了各大公司的笔试题目,并有答案的哦!

2008-09-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除