- 博客(21)
- 资源 (5)
- 问答 (2)
- 收藏
- 关注
原创 Redis6的IO多线程分析
官方表示,当使用redis时有性能瓶颈时,才推荐开启该功能,但是消耗更多的cpu time。并且,开启i/o多线程,至少要是4核以上的cpu,并且需要预留一个空闲cpu。比如4核就配io-threads=2,8核至多配io-threads=6。对于4核以上的机器,官方更推荐配置io-threads=4,因为再往上叠加,收益相对较低了,也没有太大必要。i/o多线程默认是的是写socket多线程,socket连接本身就是epoll多路复用模式,理解下来开启此配置对性能不太有提升空间。
2023-11-10 18:52:36
408
原创 Redis的内存淘汰策略分析
考虑到传统LRU的缺点,改进措施是记录数据的被访问次数。维护两个LRU队列,一个数据访问次数队列,一个缓存队列。当访问达到预设值K时,加入到缓存队列中。对于偶然性的访问非热点数据时,命中次数不够,不会加入到缓存队列中,则不会挤出热点数据。同2Queue,增加了多个FIFO队列,按照预设条件,从左到右逐级提升等级。随着数据被淘汰,从右向左逐级降级。以下集中LRU测率网上有很多,我自己结合项目加以整理。
2023-11-10 18:52:02
503
原创 将一个表作为多个表的元表时碰到的问题
将一个表作为多个表的元表时,一不小心碰到的问题,记录一下。local m = { t = {k = 1, b = 2}, v = 111,}local n = {}local aaa = {}local bbb = {}setmetatable(aaa, {__index=m, __newindex=n})setmetatable(bbb, {__index=m, __newindex=n})print(aaa.t.newKey, aaa.t.b, aaa.v) --
2021-08-18 16:39:14
135
原创 c++实现跳跃表
直接上代码,拷贝过去就能运行注释写在对应的代码里、节点的定义#ifndef _SKIP_NODE_H#define _SKIP_NODE_H#include <iostream>struct skipNode{ int key; int value; int level; //size表示该节点存在的最高层数 skipNode* *next; //skipNo...
2020-02-20 14:53:37
779
原创 Delphi调用C++的对象
在Delphi调用由C++导出的类的对象调用方式是C++中使用纯虚函数,在Delphi中也就是纯虚类,他们有着相同的布局的虚方法表。每个Delphi的类都有一张VMT表,VMT中包含了一些基础信息、一些获得运行时信息的方法以及虚方法指针。因为布局相同,所以可以互相调用。但是C++的类还是C++的类,Delphi类都继承于TObject,而C++没有这个概念。所以,获得了C++的类,不能去尝试...
2019-11-29 01:07:28
1390
3
原创 Delphi datetime运算和filedate的转换
在服务器中经常会用到时间的计算,如记录当前时间,存储当前时间戳,计算两个时间的差值。TDateTimedatetime在内存中使用比较多,它是一个double类型,可以很精细的记录时间。..var tvNow: TDateTime;...var lvNow: TDateTime; h, m, s, ms: Word; dv: Double;begin tvNow ...
2019-06-12 07:57:07
1091
原创 delphi strict final用途
整理一下delphi2007后一些不常用的语法关键字:strictprivate域下成员变量或方法加了此修饰符,该类的子类将无法访问private域下的变量和方法。 TAbstractClass = class abstract private FID: string; strict private //加了strict标记,继承类无法访问 FName: ...
2019-05-22 15:39:30
544
原创 delphi Class helper for class语法
作用对现有的类进行扩展,如果把类理解为一个容器,那么这条语法的作用是对现有的类的容器的成员进行扩展或者修改。有点像lua中的类,可以取到类的table,对table修改。语法TMyClass = classpublic procedure print;endTMyClassHelper = class helper for TMyClassprivate procedure ...
2019-04-10 16:39:10
1763
原创 lua闭包中的尾调用
网上大部分关于闭包的例子如下:function test() local i=0 return function()//尾调用 i+=1 return i end end c1=test() c2=test()//c1,c2是建立在同一个函数,同一个局部变量的不同实例上面的两个...
2019-03-30 14:24:42
207
原创 Delphi使用PShortString指针
今天学习的时候,看到RTTI结构里用了蛮多PShortString指针,由于ShortString比较特殊,所以操作PShortString的简单demo巩固一下值得注意的是:1.平常项目中一般不会使用PShortString,一般直接使用PChar操作内存,也很少在一个结构体中添加变长的成员变量。//推荐做法,Desc记得要GetMem()/FreeMem()PMyRecord = ^T...
2019-03-15 21:15:35
792
6
原创 Delphi对Excel复制粘贴操作纠错
本人学一下delphi怎么操作excel表格,正好要用到表格的复制粘贴功能,然后在网上找博客学习,结果找了以后发现基本上博客都是一个抄一个的,这样子我都不说什么了,问题是抄的很多都是错误的,误导了我两天。下面,我针对这些错误纠错一下,我不敢保证我说的对不对、全不全,反正我下面写的代码都是可以运行的。Var wb1 : Variant; wb2 : Variant;...
2019-03-15 18:05:14
1971
1
原创 Delphi的RTTI&VMT
网上已经有很多关于RTTI的博客,最近刚好看到这里,以前没弄懂的东西,这次一起搞明白一下,写个博客,算是做个笔记。这里有一篇英文文档,说的很详细:Delphi Q&amp;amp;amp;A概念每个Delphi的类都有一张虚拟方法表(virtual-method table),或者说,Delphi的类是由它来定义的。从编译器角度来看,一个类就是指向VMT的指针。一个虚拟方法表从指针所指地址的负偏移76 ...
2019-03-15 17:51:57
1193
原创 lua迭代器
ipairs函数直接上代码,实现lua的ipairs函数local global_t = {&quot;one&quot;, &quot;two&quot;, &quot;three&quot;, &quot;four&quot;}local vlocal iter = function(lvTable, k) k = k + 1 v = lvTable[k] if
2019-03-08 12:47:07
591
原创 lua 弱引用table
前言lua采用自动垃圾回收机制。但有的时候,自动垃圾回收并不是那么智能。以下两种情况需要我们手动控制内存:1.全局的对象,如放在全局变量中的table,当不用的时候需要手动设置为nil。2.当一个对象放在一个table中,如果这个对象在其它任何地方都未使用,但是却被当前都容器table所引用着,这会导致这个对象无法得到释放。举个例子:在一个mmo游戏中,玩家上线信息发给服务器,服务器会记...
2019-03-06 19:55:56
314
原创 git正确设置了ssh,但仍然提示Permission denied (publickey)
按照正常步骤设置好了ssh以后,但是仍然显示Permission denied (publickey),这时候需要加一个配置指定一下。1.首先先检查是否在钥匙串中保留了之前的公钥。mac下,请在“keychain”中搜索。如有之前保留的,请删除一下,否则会自动填充。2.按照步骤创建sshkey,然后加入ssh-agent:ssh-agent bash //开启sshagentssh-...
2019-03-05 10:27:34
14026
9
原创 lua __newIndex 元方法
__newindex是一个function的情况:local mt = {}local mytable = setmetatable({bar = "1"}, mt)mt.__index = function(table, key) return "default"endmt.__newindex = function(table, key, value) rawset(tab...
2019-03-04 16:33:34
344
原创 Delphi XE8环境下使用windows下API函数创建一个空白窗口
Delphi XE8环境下使用windows下API函数创建一个空白窗口
2017-12-19 23:29:35
960
RadStudioKeygenSourceCode.zip
2019-05-22
dzEditorLineEndsFix
2017-12-20
Wzl和Wil图像文件的简介
2015-08-27
限制游戏的启动或者控制玩游戏的时间
2015-03-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人