首页
学习
活动
专区
工具
TVP
发布

H2Cloud

专栏成员
71
文章
111996
阅读量
36
订阅数
Future Pattern
Started: 俗话说一年之计在于春,一天之计在于晨,当我起床的时候,看见表正指向九点钟,十一点下班,十点上班,这是我现在的工作节奏。来北京马上就一个月了,近二十多天里,每天的天气都非常的妩媚,但是工作原因,只能困在办公室里,真是太遗憾了。          看到MSDN的这篇文章【http://msdn.microsoft.com/zh-cn/library/dd764564.aspx#Y300】好像是今年2月份,快过年的样子。记得HM还特蛋疼的研究了一下lamada的汇编实现。当时看到Visual S
知然
2018-03-09
7350
通用排行榜组件
简介: 排行榜是游戏组件中必不可少的组件,设计一个可重用的排行榜是必不可少的,一个排行榜系统需要满足如下要求: 排行榜一般是限制名次的,比如只为前100 名进行排名 排行榜一般会有多种,比如等级排行榜
知然
2018-03-09
2.5K0
Embeding Python & Extending Python with FFPython
Introduction ffpython is a C++ lib, which is to simplify tasks that embed Python and extend Python. As the author, I am a developer for MMO server. Mainly I use C++ to implement part that needs to response user's requests in realtime, while other logic par
知然
2018-03-09
8160
C++中消息自动派发之二 About IDL解析器
  前一篇blog中讲了如何在C++中实现消息的自动派发,而关键点在于如何实现通过IDL文件自动生成msg_dispatcher模板类。有几个网友提醒我idl解析器会比较难写,事实却是如此。我第一个版本的idl解析器本来只是想做demo只用。花了一个晚上时间拼凑了几个python函数,msg_dispatcher类倒是能生成,但解析器的代码太混乱了,简直毫无结构可言。说实话,这个消息自动派发框架我还要深入的开发、扩展、优化,所以还是像模像样的搞一个解析器吧。于是果断扔掉第一版本的解析器代码,重新实现之。仍然
知然
2018-03-09
1.1K0
状态机的实现探讨
(译)状态机的实现探讨 原文链接地址:http://drdobbs.com/cpp/184401236?pgno=1          实现一个状态机很容易,但是实现一个好的状态机却不简单。一般实现状
知然
2018-03-09
1.9K0
使用ffpython嵌入和扩展python
ffpython ffpython is a c++ lib,which is to simplify task that embed python and extend python. For example, call python function, register c++ function to python, register c++ class to python. Only one implement c++ header file. Project Goals easier to embe
知然
2018-03-09
1.2K0
FFrpc python客户端lib
摘要:          Ffrpc可以很方便的构建c++ server, 在网游服务器程序开发中,进程间通讯非常的重要,比如gateserver和gameserver或dbserver之间的通信。而ffrpc可以使得进程间通信非常简单,是由于ffrpc的broker模式封装了位置无关性,使得如gate调用gameserver的接口只需要知道对方的服务名,从而使得程序中各个节点的关系与系统的拓扑关系是完美吻合的。这也使得系统的架构更加清晰,系统的实现更健壮和易维护。          之前ffrpc只提供了
知然
2018-03-09
1.7K0
C++使用ffpython嵌入和扩展python
摘要: 在服务器编程中,经常会用到python脚本技术。Python是最流行的脚本之一,并且python拥有定义良好的C API接口,同时又有丰富的文档,与C++结合非常的适合。通常情况下使用C++封装机制,而用python脚本实现策略或者是控制。使用python和C++结合的技术拥有如下优势: l  主体系统使用C++实现,保持系统的高效。 l  控制部分使用python,增加开发效率,python的内存垃圾回收,丰富的类库都使C++开发者获益匪浅。 l  Python脚本可以运行期重载,可以实现控制部分
知然
2018-03-09
1.2K0
ffrpc-c++进程间(服务器端、客户端)通信框架
FFRPC github 地址 https://github.com/fanchy/FFRPC FFRPC 已经陆陆续续开发了1年,6月6日这天终于完成了我比较满意的版本,暂称之为 V0.2,FFRPC实现了一个C++版本 的异步进程间通讯库。我本身是做游戏服务器程序的,在服务器程序领域,系统是分布式的,各个节点需要异步的进行通信, 我的初衷是开发一个易用、易测试的进程间socket通信组件。实际上FFRPC 已经是一个框架。 FFRPC 主要特性 FFRPC 采用Epoll Edge Trigger模式,
知然
2018-03-09
2.5K0
C++ FFLIB之FFRPC:多线程&多进程的scalability探索
摘要: 近来在完成通用的数据分析系统ffcount时,使用了ffrpc完成了事件源和service的通信。顺便对ffrpc进行了优化和精简,接口也更易用一些。在跟一个朋友讨论多线程和多进程的问题时,引发了如何才能是系统更加scalability的思考。把自己的一些想法用ffrpc写了一个demo。无论是使用多线程还是多进程,并发都是为了使系统在吞吐量或响应延迟等特性上达到更佳的效果。那么什么样的设计能够尽量保证scalability呢? 如何更好的使用多线程,或者说使用多线程应该遵循什么样的原则才能避免麻烦
知然
2018-03-09
1.2K1
C++任务队列与多线程
摘要:       很多场合之所以使用C++,一方面是由于C++编译后的native code的高效性能,另一方面是由于C++优秀的并发能力。并行方式有多进程 和多线程之分,本章暂且只讨论多线程,多进程方面的知识会在其他章节具体讨论。多线程是开发C++服务器程序非常重要的基础,如何根据需求具体的设计、分配线程以及线程间的通信,也是服务器程序非常重要的部分,除了能够带来程序的性能提高外,若设计失误,则可能导致程序复杂而又混乱,变成bug滋生的温床。所以设计、开发优秀的线程组件以供重用,无论如何都是值得的。  
知然
2018-03-09
2.8K0
Tips for thrift
Introduction I have designed and developed game servers successfully with thrift (http://thrift.apache.org/). I am writing here some tips to share my experience. I hope that this will help someone who is just trying to solve the same problems that I have m
知然
2018-03-09
1.1K0
FFRPC应用之Client/Server
摘要: Ffrpc 进行了重构,精简了代码,代码更加清晰简洁,几乎完美的达到了我的预想。接下来将写几遍文章来介绍ffrpc可以做什么。简单总结ffrpc的特性是:  Ffrpc是c++ 网络通信库  全异步 + 回调函数 机制  支持普通二进制协议、protobuf、thrift  基于Broker模式设计  设计精巧,代码量小,核心ffrpc的代码只有1000行  接口的性能监控是集成式的,使用者自动获得了接口性能数据,方便优化接口 普通二进制协议示例 Ffrpc实现了一个最基本的二进制序列化方法,基本的
知然
2018-03-09
8320
FFLIB C++ 异步&类型安全&printf风格的日志库
摘要       C++程序的调试一般有调试器、printf、日志文件三种。Linux下的调试器为gdb,关于gdb的使用甚至可以单独用一本书来说明,但是本章并不会过度讨论gdb,读者可以寻找相关的资料阅读。Gdb是C++程序调试中非常重要的调试手段,其有如下特点: l 通过增加断点,可以观察重点代码的执行 l 若程序出现segmentation fault,gdb可以输出调用堆栈,方便找到bug之所在 l 有些逻辑代码段非常不容易触发,可以在gdb环境下通过加断点、修改内存来强制进入特定的代码段 l 但是
知然
2018-03-09
1.5K0
C++ FFLIB之FFXML: 极简化TinyXml 读取
摘要: XML是结构化的标记语言,经常被用来做配置文件。由于XML的具有非常强的自描述属性,使用XML的配置文件往往直观易懂。C++中解析XML已经有一些非常成熟的类库可以使用,TinyXml是最受欢迎的解析类库之一。尽管TinyXml已经已经封装了解析细节,但是解析、遍历Xml仍然是稍显繁琐。FFXML针对如下需求对TinyXml做了轻量封装: 只把XML当成配置文件,也就是说,只有对XML的读取操作,在我日工作中,都是用XML当做纯配置文件,把XML当成序列化文件或数据文件的情况少之又少。 XML配置文
知然
2018-03-09
1.3K0
C++ FFLIB 之FFDB: 使用 Mysql&Sqlite 实现CRUD
摘要: C++ 操作DB真心不是太省心的事,一方面C++操作DB的接口大部分都使用C API,如Mysql、Sqlite 提供的API。尽管其C API文档已经足够清晰详细,仍然存在一些问题,如内存申请、释放,结果集的遍历等。大多数人都会稍作封装来隐藏CAPI 的细节,毕竟常用的操作无非是增删改查。另一方面目前没有比较方便易用的C++ 数据库操作框架,导致C++ 的面向对象的内存模型与SQL DB 的关系型模型很难适配。我曾在几个项目中看到过非常究竟的C++对象与SQL 行的映射框架。从那时起我就想完成一个
知然
2018-03-09
1.2K0
C++ FFLIB之ffcount:通用数据分析系统
摘要: 数据分析已经变得不可或缺,几乎每个公司都依赖数据分析进行决策。在我从事的网游领域,数据分析是策划新功能、优化游戏体验最重要的手段之一。网游领域的数据分析有如下特点(开发角度): 数据量大;网游用户量大,用户行为多,存储数据量较大。 实时性要求高;比如新上的游戏功能,玩家体验和反馈希望尽快的被分析出来。 需求变化快。网游的需求变化日新月异,故要求数据分析系统能够快速的响应需求变化。 常见的数据分析系统 数据分析系统应该分为数据存储和数据分析,常见的数据分析架构有: 直接在逻辑服务中定制数据分析;这种情
知然
2018-03-09
8760
C++ 后台程序实时性能监控
面对的问题: 做后台程序经常会被问一句话,你的程序能撑多少人。一般官方一点的回答是这个得根据实际情况而定。实际上后台程序的性能是可以被量化的。我们开发的每一个服务器程序,对性能都非常有底,以为我们有数据。So,能撑多少人不少随便猜的,让数据报表来说话。 另外一种情况经常发生在开发人员之中,甲乙丙一起讨论接口实现,经常会说这么实现效率太低,那么实现效率才高等。实际上,效率高低都是相对而言的。一个函数1ms执行完毕够快吗?看起来挺快,若某接口需要此函数100次循环,那么情况就不是很乐观了。但是若此接口又是十天半
知然
2018-03-09
2.2K0
FFLIB 框架Broker 之Master/Slave 模式
          在FFLIB的两篇介绍中,已经介绍了FFLIB是基于Broker模式构建的框架,核心组件关系图如下: http://www.cnblogs.com/zhiranok/archiv
知然
2018-03-09
9990
C++ 多进程并发框架FFLIB之Tutorial
      FFLIB框架是为简化分布式/多进程并发而生的。它起始于本人尝试解决工作中经常遇到的问题如消息定义、异步、多线程、单元测试、性能优化等。基本介绍可以看这里: http://www.cnblogs.com/zhiranok/archive/2012/07/30/fflib_framework.html   其中之所以特意采用了Broker模式,是吸收了MPI和Erlang的思想。  关于MPI:http://www.mcs.anl.gov/research/projects/mpi/  关于Er
知然
2018-03-09
2.4K0
点击加载更多
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档