自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

C++是促进脑死亡的最佳方式

一个老程序员坐在这个角落,看眼前人来人往。

  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式系统中时序的重要性

 分布式系统中时序的重要性本文是我们组前2天讨论交易邮件的处理流程过程讨论过程的总结。交易邮件就是用户在拿取附件的同时,必须付给发件人指定的相应的报酬的邮件。由于Pets是一个全区全服的游戏系统系统,邮件服务器可能有多台,不同的用户的邮件存放在不同的邮件服务器Mailsvrd 上。假设的场景都是用户B发送交易邮件给用户A,用户A如果同意交易,则在拿取附件的同时,要按照用户B

2009-03-22 12:01:00 4137 3

原创 比较3个购书网站,china-pub,dangdang,joyo(amazon)

首先说明,我写的是最近的情况,也就是2009年2月。下面是文中涉及的一些购书网站。china-pub【中国互动出版网】http://www.china-pub.com/joyo(amazon)【卓越亚马逊】http://www.amazon.cn/dangdang  【当当】http://www.dangdang.com/dearbook【第二书店】http://www.dea

2009-02-03 21:48:00 20769 5

原创 且将新火试新茶 - MySQL Benchmark(全文)

  且将新火试新茶 - MySQL Benchmark公司内部最流行的数据库就是MySQL,而关于MySQL性能,我听过种种传说和流言。而对于数据库的性能优化和测试,我一直有强烈的兴趣,曾经见过一篇Oracle的性能优化文章,Linux Journal的Bert Scalzo所著的《Linux Maximus, Part 1: Gladiator-like Oracle Performan

2009-01-11 00:21:00 8782 4

原创 MySQL的优化

7               MySQL的优化熟悉Oracle优化的人都知道Oracle的重要优化对象就是SGA区,其实MySQL也是一样的.MySQL的参数配置在my.cnf文件中。[注]。 mysql的配置大部分在my.cnf中,参数和SHOW VARIABLES显示的变量一样名称,但是有些却不是,有些是在启动参数中设置,有些是必须用SET语句更改。而且多个版本中有些参数

2009-01-08 23:59:00 5085

原创 STMT的测试

  6               STMT的测试MySQL的API为什么在网络环境下表现较差?一方面由于MySQL的API全部直接使用SQL语句执行,SQL的分析成本是比较大的,同时每次都要传递SQL也占用带宽,一方面由于MySQL的结果是采用字符串的方式传递的,也是一个比较耗费资源的事情。为了解决这些不足,MySQL推出了一组新的API STMT。(我到现在没有搞明白是什么的缩写?)

2009-01-08 23:48:00 5803

原创 MYSQL模拟真实环境下的性能

  1               模拟真实环境下的性能再次强调的是,前面的测试数据都是性能测试,不能作为实际环境的性能数据,这些数据表现的应该是理想环境下的极限性能,其只能作为参考。既然测试用例不完整,我们就考虑模拟一下真实的环境。1.1         压力测试先准备检测一下MySQL在压力情况下的性能变化情况,测试的版本为MysQL4.0 gcc静态版本,使用的配置参数和

2008-12-19 01:26:00 1996

原创 雪崩效应造成处理阻塞

昨天(其实好久了,这是邮件内容)发现ogre4ad(一个比较适应通用的通讯协议的服务器,依靠PIPE和业务进程通讯)发送数据感觉速度慢,(就像有阻塞),服务器重启动一段时间后,就会出现后端服务器进城将发送管道写满的情况。前端的用户请求无法正常处理。业务服务器的日志如下,每次处理都是管道阻塞。Apr 23 19:00:42.771 2008@LM_ERROR@SEND_PIPE Pipe

2008-12-19 01:17:00 2109

原创 InnoDB的性能

4         InnoDB的性能第一次认识InnoDB时,就是听说InnoDB能提供MySQL的支持事务和外键等支持,但是其性能大大不如MyISAM引擎。但是后来发现公司内部的游戏产品都在使用InnoDB数据库引擎,翻阅文档也发现InnoDB已经是MySQL自己从4.0开始内建的引擎。所以拿来比较一下。4.1         MySQL数据库引擎下面先介绍MySQL现有的数据库引

2008-11-15 02:05:00 2617

原创 MySQL的查询Cache测试

  3         MySQL的查询Cache测试我曾经对MySQL的Cache作了非常大的期望。因为提高数据库的性能的最好方法就是使用大规模的Cache,但是通过查询相关资料我了解到MySQL的查询Cache有很多的限制。3.1         Without Cache测试可以看到,MySQL从4.0后查询速度有所下降,所以我们也测试了一下不使用Cache的数据。我测试了4

2008-11-13 22:45:00 2531

原创 MySQL不同版本间的性能比较

1         MySQL不同版本间的性能比较不知道大家初次见到MySQL是何种感觉,反正我见到MySQL3.23时很不以为然,没有视图,没有事务,没有触发器,没有子查询,没有存储过程,没有……,懒得提了,但是要说是今天MySQL5.0的能力已经得到了很大的提升,至少上面说明的这些问题,MySQL已经解决了大部分了。1.1         比较的版本选择比较的版本是3.23版本,4

2008-11-02 16:36:00 5992 2

原创 MySQL Benchmark - 测试的相关环境

 且将新火试新茶 - MySQL Benchmark公司内部最流行的数据库就是MySQL,而关于MySQL性能,我听过种种传说和流言。而对于数据库的性能优化和测试,我一直有强烈的兴趣,曾经见过一篇Oracle的性能优化文章,Linux Journal的Bert Scalzo所著的《Linux Maximus, Part 1: Gladiator-like Oracle Performanc

2008-10-20 23:29:00 1903 3

原创 两段送别的话

06年来的两个小伙子都离开这个团队了,一个最近刚刚走,对于他们个人,离开意味一个新的空间的开始。应该是一件有意义的事情。对于我,以为着又要牢记一个一起曾经熬夜渡过的兄弟。 临别送行,为了送行赠言几句,翻了翻老邮件。 这段是送给可伶可俐的,不说太多的评语linker了,感觉如果要写的和前面还是一样,不如送两段话给linker: C++名人Alexandrescu的一句话: “十几

2008-10-20 23:02:00 2808

原创 注意参数的型别和函数参数的匹配

 1               注意参数的型别和函数参数的匹配检查COMMLIB部分,发现GCS部分一个告警。pet_gcs_interface.cpp:212: warning: passing NULL to non-pointer argument 3 of ssize_t ACE_SOCK_Stream::send_n(const void*, size_t, int, c

2008-10-17 00:48:00 2650

原创 内网的IP地址判断

 1               内网的IP地址判断分布式系统的设计中,经常要判断一个请求是否来自于内外还是外网,如果外网用户使用了内网的请求往往会发生恐怖的事情。对企业网的IP分配一般以RFC1918中定义的非Internet连接的网络地址,也称为私有地址。由Internet地址授权机构(IANA)控制的IP地址分配方案中,留出了三类网络地址,给不连到Internet上的专用

2008-10-17 00:45:00 5682 3

原创 ACE的陷阱

                             ACE的陷阱坦白说,使用这个标题无非是希望能够吸引你的眼球,这篇文章的目的仅仅是为了揭示一些ACE缺陷的。文章适合的读者是对ACE(ADAPTIVE Communication Environment)有一定研究,或者正在使用ACE从事项目开发的人士参考。如果你对C++还是新手,甚至包括ACE知识初学者,(但你想飞的更高),

2008-09-12 03:50:00 26499 14

原创 总结和如何用好ACE

21         总结和如何用好ACE21.1           实践,不断尝试大学毕业生中能成为好的程序员绝对不是纯粹考试得高分死记公式拿奖学金的同学 ,而是那些熬夜写代码的狂人,哈哈。计算机是一门实践科学,你只有不断尝试才能进步。21.2           阅读的ACE代码好像是Linus(虽然他好像有点抵触C++,哈哈),好像是Linus Torvalds在回答一

2008-09-12 03:46:00 4642

原创 杂项

 20         杂项这一节列一些ACE使用中要注意的一些问题。20.1           ACE_Reactor的初始化应尽量提前由于为了一些自己需要的特性,我一般会自己初始化ACE_Reactor,而不是让系统默认初始化。要注意必须在程序的最开始就初始化ACE_Reactor。由于ACE的很多代码都会使用ACE_Reactor,包括日志的策略类。所以ACE_Reac

2008-09-12 03:41:00 1796 1

原创 自己初始化Timer_Queue的尺寸

19         自己初始化Timer_Queue的尺寸如果你的应用有大量的定时器,你最好自己控制Timer_Queue的尺寸。原因如下。默认的ACE的Timer_Queue初始化的尺寸不大,一般只有44个。而原有的尺寸不能满足你的要求的时候,Timer_Queue会自动增长,以Timer_Heap为例,增长的方式是扩大一倍空间。在性能要求严格环境下,多次增长队列的尺寸对性能会造成一定的冲

2008-09-12 03:38:00 2194

原创 共享内存的与位置无关分配?

18         共享内存的与位置无关分配?在文档《ACE Programmers Guide, The: Practical Design Patterns for Network and Systems Programming》中介绍了一种与位置无关的共享内存分配,但是实际上这种方式并不是太理想。按照文章中的介绍的方式,其实主要是采用ALWAYS_FIXED参数,使用制定的基地址作为

2008-09-12 03:33:00 2450

原创 过于前卫的Makefile方式

 17         过于前卫的Makefile方式这个”陷阱”的说法有点吹毛求疵,ACE提供了一种很前卫的Makefile方式,他定义了Makefile的基础变量,以及包括规则。如果使用他来辅助Makefile的书写,特别是在跨平台开发中,你可以大大节省Makefile开发时间。BIN   = hello_aceBUILD = $(VBIN)SRC = $(addsuf

2008-09-12 03:31:00 2812

原创 非阻塞网络函数封装不一致

 16         非阻塞网络函数封装不一致ACE的非阻塞网络函数参数设计有不合理的地方。ACE_SOCK_Stream和ACE_SOCK_Connector在非阻塞的的调用的接口对于ACE_Time_Value *timeout参数的使用不一致,一个要使用NULL,一个却要使用ACE_Time_Value::zero。ACE_SOCK_Stream,非阻塞调用send函数的时候【

2008-09-12 03:29:00 3052 7

原创 ACE_Time_Value的赋值效率

 15         ACE_Time_Value的赋值效率ACE_Time_Value是使用ACE会大量使用类。但是他的部分函数没有高效的实现。比如构造函数:ACE_INLINEACE_Time_Value::ACE_Time_Value (time_t sec, suseconds_t usec)和set函数ACE_INLINE voidACE_Time_

2008-09-12 03:27:00 5285

原创 ACE的日志的不如意

  14         ACE的日志的不如意ACE的日志部分是一个非常漂亮的实现,在多线程和多进程模型下都能较好的效率和安全使用。但是却又少量的不足,让人意犹未尽。14.1           无法替换的时间戳格式ACE日志对于时间戳的格式是固定的,采用的是格式,这个格式在西方人看起来估计还比较顺眼,在东方人眼中却不如人意。更好的方式当然是时间戳的函数可以重载。或者用函数对象(指

2008-09-12 03:25:00 1949

原创 尽量使用STL而不是ACE的容器

 13         尽量使用STL而不是ACE的容器这个纯属个人感觉(偏见)。我有如下理由不使用ACE的容器:l      一些实现不符合大家对于容器的认识,比如ACE_DLList,在其中存放的居然是对象的指针而不是拷贝。你还必须记住去释放ACE_DLList内部管理的指针。l      ACE容器的迭代器不符合STL的要求,从而造成ACE的容器无法使用STL的各种模板算法和

2008-09-12 03:25:00 2218 1

原创 ACE的CDR中的字节对齐问题

 12         ACE的CDR中的字节对齐问题大家应该都知道计算机中间都有字节对齐问题。CPU访问内存的时候,如果从特定的地址开始访问一般可以加快速度,比如在32位机器上,如果一个32位的整数被放在能被32模除等于0的地址上,只需要访问一次,而如果不在,可能要访问两次。但是这样就要求一些数据从特定的地址开始,而不是顺序排放(中间会有一些空余的地址),这就是字节对齐。而ACE C

2008-09-12 03:23:00 3042 1

原创 调整系统时钟导致ACE定时器丢失

11         调整系统时钟导致ACE定时器丢失由于我们采用的服务器一般都是靠纽扣电池作为能源驱动和记录时钟,一般在运行一段时间后都会出现时间误差。所以很多大规模的分布系统都有校时操作,特别是一些对时钟要求精确的分布式系统(比如计费等),往往都会有一个主机提供精确时钟服务(其可能采用GPS校时),其他服务器通过这台服务器校时,校时操作一般都是直接改变系统时钟。ACE的定时器都是采用E

2008-09-12 03:15:00 2996

原创 Event_Handler在程序退出前应该自己关闭

10         Event_Handler在程序退出前应该自己关闭在程序退出的【注】,我们往往不会自己关闭Event_Handler,而寄希望Reactor 的清理。但是实际情况会复杂很多。使用的时候必须当心。 【注】是否要在退出的时候清理所有分配的内存?在普通的操作系统中,程序的退出会回收所有的分配内存。所以很多人会逃避在最后阶段的清理分配的内存。但是这实在不是一个良好

2008-09-12 03:12:00 3032 2

原创 ACE_Dev_Poll_Reactor的处理优先级严重偏向定时器

  9            ACE_Dev_Poll_Reactor的处理优先级严重偏向定时器不使用POLL和EPOLL【注】的人,估计不太知道这个ACE_Dev_Poll_Reactor,但实际上。特别是Linux下的EPOLL(一个IO多路服用模型),这是Linux大规模接入的重要法宝,从目前的表现来看,其他平台上还没有可以超越EPOLL的东西,Windows下的异步IO的性能也还远

2008-09-08 23:25:00 2617

原创 慎用Reactor Notify机制

  8               慎用Reactor Notify机制在Reactor的模式,有一种辅助的通知机制,Notify机制,简单说就是通过通知发起者调用notify函数,notify的消息被保存在一个管道中,handle_event的处理中会检查这个管道中是否有通知数据,如果有就根据通知的消息,会根据默认的通知消息的类型去调用hanle_input等函数。从设计的角度将,这

2008-09-08 23:23:00 4218 2

原创 注意ACE_Pipe的实现

 7               注意ACE_Pipe的实现ACE_Pipe是一个跨平台的管道实现。标准情况来讲,采用的实现,但是在最大的两个平台Windows和Linux上,ACE的实现是采用的Socket实现。intACE_Pipe::open (int buffer_size){  ACE_TRACE ("ACE_Pipe::open"); #if def

2008-09-08 23:21:00 2679

原创 尽量使用ID取消ACE_Event_Handler定时器

 6           尽量使用ID取消ACE_Event_Handler定时器ACE的Reactor 提供了两种方式取消定时器:virtual int cancel_timer (ACE_Event_Handler *event_handler,                            int dont_call_handle_close = 1);vir

2008-09-08 23:19:00 2538

原创 WFMO_Reactor的与众不同

  5              WFMO_Reactor的与众不同WFMO_Reactor是ACE_Reactor在Windows下的默认实现(为什么不选择ACE_Select_Reactor作为默认实现,可能是基于效率和强大性的考虑),WFMO_Reactor的低层使用的函数是WaitForMultipleObjects和WSAEventSelect,WSAEnumNetworkEve

2008-09-08 23:18:00 1509

原创 Reactor定时器的精度取决于实现

4              Reactor定时器的精度取决于实现由于Reactor在各个平台的默认实现都取决于平台的实现,比如在Windows下默认的Reactor是WFMO_REACTOR,而在Linux和UNIX平台,默认的Reactor是Select_Reactor,而Reactor的实现往往取决于使用的反应器底层实现,而这些反应器的时间精度就决定了你的定时器的时间精度。下表大致反馈了

2008-09-08 23:11:00 1483

原创 不要使用ACE_Timer_Hash

 1               不要使用ACE_Timer_HashACE有一个非常优美的定时器队列模型,他提供了4种定时器Queue让大家使用:ACE_Timer_Heap,ACE_Timer_Wheel,ACE_High_Res_Timer,ACE_Timer_Hash。在《C++ Network Programming Volume 2 - Systematic Reuse wit

2008-09-08 23:09:00 2188

原创 ACE的链接Link错误

2           ACE的链接Link错误很多人在Windows使用ACE的时候往往会出现以下的Link错误。Why do I get errors while using TryEnterCriticalSection? /ace/OS.i(2384) : error C2039:TryEnterCriticalSection: is not a member of

2008-09-08 23:08:00 2323 1

原创 ACE的陷阱

 ACE的陷阱坦白说,使用这个标题无非是希望能够吸引你的眼球,这篇文章的目的仅仅是为了揭示一些ACE缺陷的。文章适合的读者是对ACE(ADAPTIVE Communication Environment)有一定研究,或者正在使用ACE从事项目开发的人士参考。如果你对C++还是新手,甚至包括ACE知识初学者,(但你想飞的更高),建议你收藏这篇文档以后阅读。秉承陷阱系列文章的传统,我只是通

2008-09-08 23:05:00 1807

原创 printf函数一些不太为人熟知的格式定义参数

  (1)%.32s . 小数点用于负点的格式说明符号大家都知道了。其实她还可以用于字符创的截断(最大长度)限定,Jovi GG给得例子。例如: %6.9s 表示显示一个长度不小于6且不大于9的字符串。若大于9,  则 第9个字符以后的内容将被删除。 所以%.32s表示最大输出%.32s的长度.(2)%.*s 程序员总是得寸进尺,如如果能用参数动态限制字符串的长度,世界

2008-07-11 00:35:00 2534 1

原创 当Borland体面的死去

今天想完成一直没有搞掂的测试框架,在公司被迫用MFC 开发了一下界面,感觉简直是难用到了一个境界……。首先毕竟用MFC已经是6年以前的事情了,其次MFC在界面开发上实在很烂很烂。完全无法让人把开发精力集中到业务逻辑上。突然开始怀念起Borland c++ Builder,那个让我恨爱交加的RAD开发工具,超级高效美丽的界面设计功能,低效的编译和工程管理能力的软件,对c++程序员来说古怪的VCL

2008-07-10 02:06:00 2285

原创 利用小技巧用于跟踪函数的进出过程

 有一次为了调试ACE的代码打开了ACE_TRACE的开关,除了对蜂拥而出的日志输出有印象外还对ACE的函数进出提示产生了好感。对于后台调试的时候,往往必须使用大量的日志跟踪。而简单的加入函数进出的功能是一个不错的选择。稍稍看了一下ACE的实现,感觉效果一般,还要自己写跟踪的函数名称。也不是太爽。(ACE估计是苦于大家对C++标准的支持程度)。感觉了一下,其实函数的进出跟踪都可以使用一个结构的

2008-04-30 00:11:00 17075 1

原创 对任何返回指针的函数保持慎重

搞怪的调试,IP地址输出总是错误的问题。检查日志发现了一个日志中间的IP地址总是输出错误。  Dec 28 11:08:30.759 2007@LM_INFO@Listen peer [124.115.1.80|80] accept Socket IP Address:[124.115.1.80|64119] Success. Dec 28 11:08:31.463 2007@

2008-04-29 23:53:00 2114 3

且将新火试新茶-MySQL Benchmark

《且将新火试新茶-MySQL Benchmark》,在Blog的文档由于格式原因不是特别理想,将文档转换为PDF格式提交上来给大家,希望大家喜欢。 使用下载资源分出于无奈,我自己的下载分不多。呵呵。 我的Blog是: http://blog.csdn.net/fullsail 大家可以自由的转载使用这个文档,前提只是保证文档的完整性,我保留署名权。

2009-03-05

空空如也

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

TA关注的人

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