自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 Redis和Golang map比较

Redis和Go map的比较

2022-08-14 21:57:27 603 1

原创 将博客搬至CSDN

将博客搬至CSDN

2019-01-29 10:39:10 105

原创 epoll那些事儿

ET和LT: LT一般用在单线程。 ET和EPOLLONESHOT配合用在多线程共享一个epoll环境下,EPOLLONESHOT标记触发过的事件从epoll中移除,下次必须重新注册,用来防止多线程同时取到同一个socket的事件产生冲突。epoll_wait 第三个参数 取事件数量: 单线程模型当然尽可能一次多取一些效率高,多线程为了防止一个线程...

2018-07-14 11:17:48 117

原创 tcp/udp,socket那些事儿

概念 : tcp和udp,连接和无连接都是协议,是共享物理介质的传输数据的应用程序之间的约定。面向连接的协议维护了segment的状态和次序。故障 :默认无keep alive:拔网线或路由器崩溃:发送端超时(重传12次大约9分钟)后放弃,接收端读errorno ETIMEOUT,如果没有读则要等到下一次写失败sigpipe。如果中间路由器无法转...

2018-07-13 15:49:50 146

原创 初识cdn

工作上虽然和cdn没关系但是技术方向还是很多相似之处的,例如:负载均衡,缓存,分布式,路由等。cdn简单的说就是个复杂的大缓存,由于目标用户(包括源和端)广泛直接导致了其复杂性,遍布广节点多则需要分流负载甚至自组织,应用繁杂则需要分流路由,提速则需要缓存,稳定则需要监控调度,为了透明则需要各种映射。 由于接入面广和网络的复杂性,不可能让客户端直接面对...

2018-05-09 23:57:32 116

原创 关于dpdk 的思考

dpdk是通过许多不同的纬度来加速包处理的,其中主要包括:hugepage大页内存(进程使用的是虚拟地址,一般页表(4k)能映射的虚拟地址空间有限,使用大页能减少换页次数提高cache命中,通过mmap把大页映射到用户态的虚拟地址空间有用过mmap的都知道这是实现共享内存的手段,所以dpdk还支持多进程共享内存)cache预取 (每次预读当前数据相邻前后的数据)...

2017-02-05 14:08:17 384

原创 Redis解析

Redis是工作中很常用的,这里将比较普遍使用的结构研究了下做个备忘。hash实现和dnspod的dataset半斤八两,本质上是个二维数组,通过将key哈希作为一维的下表,第二维的数组存相同哈希的元素,查找使用遍历的方式,所以这里redis做了优化,当满足条件的时候(数组数量太大)会进行rehash,动态扩大桶的数量来减少最后一维遍历的次数.函数名称作用复杂度d...

2017-01-24 18:13:13 73

原创 dnspod解析

dns的递归解析过程还是挺繁琐的,要知道一个域名可能有cname、ns 而请求的cname、ns可能还有cname、ns,如果按照线性的处理每个请求那逻辑就变成毛线团了dnspod的处理还是挺巧妙的,通过一个公共的数据集dataset将所有域名对应的a、cname、ns等类型的数据作为单独的条目存入,当有需要某个域名的信息时先去dataset找,找不到在加入ql...

2017-01-23 15:14:36 227

原创 Network Stack Specialization for Performance

最近在研究DPDK,这是sigcomm 2014的论文,纪录在此备忘Ps: 文中关键词的概念:segment : 对应于tcp的PDU(协议传输单元),这里应该指tcp层的包,如果一个包太大tcp负责将它拆分成多个segment(这个概念对理解后文有帮助)根据unix网络编程卷1 第8页注解2:packet是IP层传递给链路层并且由链路层打包好封装在帧中的数据(不...

2017-01-22 18:01:47 1210

原创 cegui 0.7 渲染改动

一直想用cegui,但是没机会用,只是抽空看其代码 最近听朋友说0.7 debug下帧数提高100多,挺惊讶的,重新到久违了的官网上下了0.7.1 看了下渲染的实现(GL) 首先,添加了GeometryBuffer玩意,使得每个window保存了属于自己的顶点和纹理信息 然后在RenderingSurface中有Geometr...

2010-04-27 20:56:05 107

原创 [转]理解批次

这个看代码里面batch相关的。[Direct3D] 实现批次渲染、硬件 T&L 的渲染器和 D3DPipeline 在是否从 D3DRender 提供顶点缓存区操作给流水线时做了一些权衡,最后决定暂时使用 IDirect3DDevice9::DrawPrimitiveUP 来渲染,因为它更容易书写,而且开销是一次顶点拷贝,流水线也不用操心对缓存的...

2009-10-25 17:15:19 134

原创 wtl显示中文

1)打开资源文件,把LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US修改为LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED2)关闭资源文件3)打开对话框,输入汉字,并保存4)右击资源文件属性,选择Resources->General->Culture,设置为:中文(中国)...

2008-12-11 17:53:27 298

原创 [转]c++的位运算

前言 看到有些人对位运算还存在问题,于是决定写这篇文章作个简要说明。 什么是位(bit)? 很简单,位(bit)就是单个的0或1,位是我们在计算机上所作一切的基础。计算机上的所有数据都是用位来存储的。一个字节(BYTE)由八个位组成,一个字(WORD)是二个字节或十六位,一个双字(DWORD)是二个字(WORDS)或三十二位。...

2008-11-11 22:21:40 94

原创 WTL控件类完整列表

CButtonT CButton CTrackBarCtrlT CTrackBarCtrl CListBoxT CListBox CUpDownCtrlT CUpDownCtrl CComboBoxT CComboBox...

2008-11-11 17:02:22 321

原创 char转Tchar

char file[MAX_PATH];TCHAR Tchartmp[MAX_PATH];sprintf_s(file, "fileName%d", 134);CString strUnicode = file;wcscpy(Tchartmp,strUnicode);

2008-10-14 15:00:50 104

原创 Tchar转char

TCHAR tcScriptName[MAX_PATH];tcScriptName = "filename";size_t i;char tmp[MAX_PATH];mbstate_t mbstate; // Reset to initial shift state::memset((void*)&mbstate, 0,...

2008-10-14 14:26:43 95

原创 基础

继承是类与类的关系。 重载是方法与方法之间的关系。 继承是一个类需要另一个类的属性和方法,所以用到继承,这是发生在两个类之间的事情。 重载是指一个方法与另一个方法的方法名相同而参数列表不相同,这样的情况叫重载,属于多态。这是发生在一个类中的事情。 一个子类继承另外一个类,可以对父类中的方法进行重写,说到这里应该可以看出,继承和重载没什么关系了。而重写却与继承有很大的...

2008-08-19 09:14:32 202

原创 第一次

第一篇文章不知道写什么,就当是对我入行几个月的一个save吧,第一个项目,2D的地图编辑器,3个人一起做的(主程有先搭个框架),我负责的是用OGRE在视图中显示地形和物件管理还有阻挡等,后来还做了机器人的寻路,资源暂时用的是魔兽(觉得美工做的地形的图没有魔兽的美 = = |||)。OGRE确实是好东西,不过可能是不够熟悉的原因吧,经常被小问题还有没有考...

2008-08-18 22:36:55 127

空空如也

空空如也

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

TA关注的人

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