自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 347

原创 Redis的内存淘汰策略分析

考虑到传统LRU的缺点,改进措施是记录数据的被访问次数。维护两个LRU队列,一个数据访问次数队列,一个缓存队列。当访问达到预设值K时,加入到缓存队列中。对于偶然性的访问非热点数据时,命中次数不够,不会加入到缓存队列中,则不会挤出热点数据。同2Queue,增加了多个FIFO队列,按照预设条件,从左到右逐级提升等级。随着数据被淘汰,从右向左逐级降级。以下集中LRU测率网上有很多,我自己结合项目加以整理。

2023-11-10 18:52:02 466

原创 linux下搭建gperftools工具分析程序瓶颈

linux下搭建gperftools工具,生成函数调用堆栈、调用消耗等,生成可视化图形。

2023-11-10 17:18:02 312

原创 mac下搭建v8环境

macos下搭建v8引擎环境,xcode上断点调试。中间遇到了编译的问题,记录下来参考一下。

2022-04-10 22:43:32 1800 7

原创 将一个表作为多个表的元表时碰到的问题

将一个表作为多个表的元表时,一不小心碰到的问题,记录一下。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 122

原创 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 728

原创 Delphi调用C++的对象

在Delphi调用由C++导出的类的对象调用方式是C++中使用纯虚函数,在Delphi中也就是纯虚类,他们有着相同的布局的虚方法表。每个Delphi的类都有一张VMT表,VMT中包含了一些基础信息、一些获得运行时信息的方法以及虚方法指针。因为布局相同,所以可以互相调用。但是C++的类还是C++的类,Delphi类都继承于TObject,而C++没有这个概念。所以,获得了C++的类,不能去尝试...

2019-11-29 01:07:28 1310 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 1027

原创 delphi strict final用途

整理一下delphi2007后一些不常用的语法关键字:strictprivate域下成员变量或方法加了此修饰符,该类的子类将无法访问private域下的变量和方法。 TAbstractClass = class abstract private FID: string; strict private //加了strict标记,继承类无法访问 FName: ...

2019-05-22 15:39:30 483

原创 delphi Class helper for class语法

作用对现有的类进行扩展,如果把类理解为一个容器,那么这条语法的作用是对现有的类的容器的成员进行扩展或者修改。有点像lua中的类,可以取到类的table,对table修改。语法TMyClass = classpublic procedure print;endTMyClassHelper = class helper for TMyClassprivate procedure ...

2019-04-10 16:39:10 1712

原创 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 174

原创 Delphi使用PShortString指针

今天学习的时候,看到RTTI结构里用了蛮多PShortString指针,由于ShortString比较特殊,所以操作PShortString的简单demo巩固一下值得注意的是:1.平常项目中一般不会使用PShortString,一般直接使用PChar操作内存,也很少在一个结构体中添加变长的成员变量。//推荐做法,Desc记得要GetMem()/FreeMem()PMyRecord = ^T...

2019-03-15 21:15:35 758 6

原创 Delphi对Excel复制粘贴操作纠错

本人学一下delphi怎么操作excel表格,正好要用到表格的复制粘贴功能,然后在网上找博客学习,结果找了以后发现基本上博客都是一个抄一个的,这样子我都不说什么了,问题是抄的很多都是错误的,误导了我两天。下面,我针对这些错误纠错一下,我不敢保证我说的对不对、全不全,反正我下面写的代码都是可以运行的。Var wb1 : Variant; wb2 : Variant;...

2019-03-15 18:05:14 1851 1

原创 Delphi的RTTI&VMT

网上已经有很多关于RTTI的博客,最近刚好看到这里,以前没弄懂的东西,这次一起搞明白一下,写个博客,算是做个笔记。这里有一篇英文文档,说的很详细:Delphi Q&amp;amp;amp;amp;A概念每个Delphi的类都有一张虚拟方法表(virtual-method table),或者说,Delphi的类是由它来定义的。从编译器角度来看,一个类就是指向VMT的指针。一个虚拟方法表从指针所指地址的负偏移76 ...

2019-03-15 17:51:57 1097

原创 lua迭代器

ipairs函数直接上代码,实现lua的ipairs函数local global_t = {&amp;quot;one&amp;quot;, &amp;quot;two&amp;quot;, &amp;quot;three&amp;quot;, &amp;quot;four&amp;quot;}local vlocal iter = function(lvTable, k) k = k + 1 v = lvTable[k] if

2019-03-08 12:47:07 564

原创 lua 弱引用table

前言lua采用自动垃圾回收机制。但有的时候,自动垃圾回收并不是那么智能。以下两种情况需要我们手动控制内存:1.全局的对象,如放在全局变量中的table,当不用的时候需要手动设置为nil。2.当一个对象放在一个table中,如果这个对象在其它任何地方都未使用,但是却被当前都容器table所引用着,这会导致这个对象无法得到释放。举个例子:在一个mmo游戏中,玩家上线信息发给服务器,服务器会记...

2019-03-06 19:55:56 275

原创 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 13722 9

原创 lua __newIndex 元方法

__newindex是一个function的情况:local mt = {}local mytable = setmetatable({bar = &quot;1&quot;}, mt)mt.__index = function(table, key) return &quot;default&quot;endmt.__newindex = function(table, key, value) rawset(tab...

2019-03-04 16:33:34 324

原创 Delphi 环境下使用DirectDraw实现简单的绘制

使用Windows API函数实现原生态窗体,然后调用DDraw类实现效果。

2017-12-25 22:47:41 1327

原创 Delphi下使用Windows GDI绘图

使用简单的GDI绘图

2017-12-21 17:09:54 1765

原创 Delphi XE8环境下使用windows下API函数创建一个空白窗口

Delphi XE8环境下使用windows下API函数创建一个空白窗口

2017-12-19 23:29:35 930

Delphi&C++&Dll.rar

把C++中的类封装成DLL,导出此类的对象给Delphi层调用。区别于以往的导出函数的方式,此示例是导出对象。

2019-11-30

RadStudioKeygenSourceCode.zip

delphi xe系列的破解器RadStudioKeygen工具的源代码,用xe系列编译即可,xe8亲测编译通过,该破解器可破解目前最新的xe10.3及以下版本

2019-05-22

DelphiX源代码

大神们使用Delphi翻译过来的DirectX源代码,选中DPK文件编译即可安装。

2017-12-25

dzEditorLineEndsFix

Delphi2007多开时报错: "Cannot create file %Temp%\EditorLineEnd.ttr"。打开工具即可解决该问题。

2017-12-20

深入Delphi网络编程源码

深入Delphi网络编程的源码,分享一下。

2015-08-09

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

TA关注的人

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