上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页
摘要: 在通过Remoting调用重载的泛型方法时,遇到了一个奇怪的问题,现使用一个例子一步步来说明如下。 一.没有重载的情况 假设Remoting的接口是IComputer: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> pub... 阅读全文
posted @ 2008-11-28 10:20 zhuweisky 阅读(3337) 评论(2) 推荐(0)
摘要: 在多线程程序中,我们经常需要对要访问的资源进行加锁。加锁的目的是为了同步对资源的访问,但是,加锁不可避免的会降低应用的并发量。那么如何在需要加锁的时候,尽可能地提高并发量了? 阅读全文
posted @ 2008-11-26 09:42 zhuweisky 阅读(3472) 评论(5) 推荐(0)
摘要: 记录执行失败的SQL语句和对应的参数值,对于我们分析异常产生的原因是十分有用的,而DataRabbit可以自动为你记录了这些信息。 阅读全文
posted @ 2008-11-19 16:05 zhuweisky 阅读(2979) 评论(2) 推荐(1)
摘要: 这段时间在对我们的棋牌系统做压力测试,模拟3000用户同时在线的状况。在这种情况下,数据库服务器的cpu消耗仅为2%左右(cpu是2*至强4核),内存占用1.8G(物理内存共有4G),大概平均每秒钟向数据库中插入40多条记录(三个表,包括游戏主从记录、利润记录等),还有数十次的select和update。另外,数据库中游戏记录表和利润记录这两个表的现有数据量都有1700万左右,当前数据库的总大小为37G。在如此的情况下运行,cpu是比较平稳的,内存也很平稳,但是每当运行了11到14个小时左右的时候,系统就会产生很多Insert的Timeout日志。为此,我将命令执行的超时由30s改成60s,问 阅读全文
posted @ 2008-11-05 11:09 zhuweisky 阅读(3223) 评论(11) 推荐(0)
摘要: 对于SqlServer数据库,当有数据库连接建立时,会触发Audit login 事件;而当有某个数据库连接关闭时,将触发Audit logout 事件。一.Audit logout 的Duration值注意,在SQLSERVER的事件探查器中,我们通过观察可以发现,Audit login 和 匹配的Audit logout 事件使用的是同一个SPID,而且Audit logout 事件记录的StartTime正是Audit login事件产生的时间。有图为证: (大家请注意SPID为61的Login和Logout事件)所以,对于Audit logout 事件的记录的Duration字段的值的 阅读全文
posted @ 2008-10-28 14:00 zhuweisky 阅读(20576) 评论(4) 推荐(1)
摘要: 增加了对SqlServer2005/2008的新的数据类型的支持,内核基本没有改变。 阅读全文
posted @ 2008-10-23 15:45 zhuweisky 阅读(1647) 评论(8) 推荐(0)
摘要: A*算法是如今游戏所采用的寻路算法中相当常用的一种算法,它可以保证在任何起点和任何终点之间找到最佳的路径(如果存在的话),而且,A*算法相当有效。 阅读全文
posted @ 2008-10-22 16:31 zhuweisky 阅读(17121) 评论(28) 推荐(1)
摘要: 可以有非常多的方式来使用DataRabbit,而本文详细说明在三层架构中使用DataRabbit的最佳实践。 阅读全文
posted @ 2008-10-13 17:00 zhuweisky 阅读(4405) 评论(8) 推荐(1)
摘要: 在下面的例子中,我定义了一个事件发布类Computer,事件订阅者ComputerManager。Computer发布了一个OnAction事件,并且该事件在Increase方法被调用时触发。ComputerManager接收到事件通知时,会将成员字段handleCount增加1. 先看Computer的定义: Code highlighting produced by Act... 阅读全文
posted @ 2008-09-23 16:47 zhuweisky 阅读(1200) 评论(1) 推荐(0)
摘要: 在IL中,方法的定义语法: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->.method () { } 一.Flags部分可设置 1.可访问性 privatescope: 该方法不能被引用。 priv... 阅读全文
posted @ 2008-09-23 14:30 zhuweisky 阅读(2627) 评论(0) 推荐(0)
摘要: 本文通过一个简单的示例来说明在IL中进行异常处理时要注意的关键点。 我们来看一个包含try...catch...finally的示例: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public void Test... 阅读全文
posted @ 2008-09-22 15:36 zhuweisky 阅读(2372) 评论(2) 推荐(0)
摘要: 以ToString()方法为例,深入的剖析了使用Emit发射方法调用要注意的关键点。 阅读全文
posted @ 2008-09-20 11:10 zhuweisky 阅读(2387) 评论(2) 推荐(0)
摘要: 本文介绍了Emit中OpCodes.Ldind_Ref 和 OpCodes.Ldind_I* 的作用区别。 阅读全文
posted @ 2008-09-19 16:46 zhuweisky 阅读(1877) 评论(0) 推荐(1)
摘要: 当我将基于DataRabbit的应用程序放到windows server 2008 SP1上运行时,抛出了System.AccessViolationException,提示信息为:“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”。而这个应用程序在windows server 2003上一直是非常正常的。根据异常的堆栈信息,可以知道是IORMapping.GetEntityFr... 阅读全文
posted @ 2008-09-13 12:22 zhuweisky 阅读(10372) 评论(4) 推荐(1)
摘要: 基于XNA 3.0 的2D网络游戏引擎 阅读全文
posted @ 2008-08-02 17:32 zhuweisky 阅读(4168) 评论(22) 推荐(0)
摘要: 对大多数大型系统而言,数据库往往是最容易出现瓶颈的地方,而通过使用恰当的缓存技术可以非常有效地减轻数据库的负载。将系统中用到的所有数据进行分类,分别对待不同种类的数据而不是一视同仁,有利于正确地做出缓存哪些数据、以及如何缓存的决策。 我通常将系统中用到的数据分为四类:恒定不变的数据,只发生增量的数据,偶尔改变的数据,经常改变的数据。(1)对于恒定不变的数据,采用普通的恒定缓存,即这种缓存在系统启动后初始化一次就不再改变了。(2)对于只发生增量的数据,采用智能式的增量缓存,如果所要的数据在这种缓存中不存在,则该缓存会从其它地方(如数据库)自动加载目标对象并缓存起来。(3)对于偶尔改变的(但不是. 阅读全文
posted @ 2008-06-27 20:00 zhuweisky 阅读(5082) 评论(17) 推荐(1)
摘要: 今天解决一个部署问题,问题是这样的:我们的平台和GameServer部署在IDC的同一局网中,平台一块网卡配置了2个IP地址。GameServer通过Remoting访问平台正常,平台通过Remoting回调GameServer也成功,但是GameServer通过Remoting访问平台的动态插件服务时,却抛出Socket异常。经过检查和尝试,最后发现原来是平台的网关没有配置导致的,网关配置后,G... 阅读全文
posted @ 2008-06-18 11:09 zhuweisky 阅读(1013) 评论(0) 推荐(0)
摘要: 如果你使用Spring.net作为你的IOC容器,那么一定要注意这个问题--Spring.net 目前不支持getter、setter的访问限定符。 阅读全文
posted @ 2008-05-29 18:39 zhuweisky 阅读(2258) 评论(3) 推荐(0)
摘要: 动态代理的一个最主要的应用场合就是实现AOP - 截获方法调用,加入自己的预处理、后处理或Around处理。 我在ESBasic.Emit中实现了对这些截获的支持。 首先,介绍两个截获者: /// /// IMethodInterceptor 对方法进行截获并加入预处理和后处理。 /// public interface IMethod... 阅读全文
posted @ 2008-05-21 17:42 zhuweisky 阅读(5724) 评论(13) 推荐(0)
摘要: void 也是.NET中的一种类型,只不过在C#中看不到“System.VOid”这种Type,而在IL这一层是可以看到的。如果我们要通过反射判断一个方法是否有返回值,比较直观的解决办法好像是这样:MethodInfooriginMethod=;if(originMethod.ReturnType!... 阅读全文
posted @ 2008-05-21 10:31 zhuweisky 阅读(5075) 评论(18) 推荐(1)
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 17 下一页