快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰集团_龟发之家论坛



小序

之前写过一篇文章《在企业级开拓中应用Try...Catch...会影响效率吗?》一文,获得了不少同伙的关注,自己也与大年夜家暗里交流了一些器械。

为了最快的让大年夜家明白本文的内容,我先把本文的内容列个提要,提要如下:

Try...Catch中大年夜家普遍觉得的结论

尽可能的斟酌真实情况的再次做测试并进行阐发

之前文章中有差错的几点内容

总结

正文部分

第一部分

对付之前的文章,大年夜家的主要意见有如下:

Try...Catch不会有机能问题

Try.澳门新葡亰集团..Catch会对机能有必然的影响

对我的测试结果有争议

测试没有斟酌所有情况,如预热、收集非常等等

不应该用非常处置惩罚来作为逻辑处置惩罚

照样主不雅上感到try...catch照样会有机能影响,然则到底会有多大年夜,不好说。

置疑“企业级开拓”这个观点

第二部分

针对以上的一些问题,本着没有艰苦,创造艰苦也要上的精神,笔者又做了一些测试,然则斟酌到真实情况,及可能呈现的问题,代码或多或少有所篡改。斟酌到的身分有:

throw new Exception("Kevin让我非常了");这个非常抛出措施是抛出通俗的非常措施,而实际开拓中,可能呈现的非常类的数量都异常的宏大年夜,笔者粗略的预计了一下,可能至少澳门新葡亰集团得有上千种,而且还可以自定义非常类,假如按照这个来算的话,非常类的数量应该是无穷的。

非常类有的处置惩罚起来光阴会长,有的处置惩罚起来光阴会短,有同伙觉得收集处置惩罚方面的非常处置惩罚起来可能光阴会稍长一些澳门新葡亰集团,一旦用try...catch的话,处置惩罚起来光阴可能会长。

假如说一个函数的Try...Catch的机能损耗光阴对照短,那么1000个函数的机能损耗会不会很长?比如,系统中有1000个函澳门新葡亰集团数,每个函数中都有一个try...catch,然后又一个措施调用了这1000个函数。 针对这一点,就可以把try...catch...放在for轮回里爱好1000次来进行测试。

测试中的预热问题,尽可能的多斟酌真实情况。

针对以上问题,笔者尽可能的换些非常类进行测试,然后将try...catch...放到for轮回中进行测试。测试获得如下结论:

没有应用try...catch不呈现非常跟应用了try...catch不呈现非常 光阴相称。

try...catch...的光阴=从履行函数开始到呈现非常的光阴+非常捕获的光阴+非常处置惩罚的光阴。而非常捕获的光阴平日微乎其微,假如是单次的话,可以轻忽不计,也不会造成机能瓶颈。

假如只做非常捕获,然则不做非常处置惩罚的话,轮回1000次呈现非常的光阴约是应用了try...catch不呈现非常的391.9倍。

由于非常处置惩罚的光阴由多个部分组成,由于不合非常捕获到的光阴可能不合,非常处置惩罚的光阴也不尽相同,就会导致着末光阴加起来结果跟我测试的会有区别。

在进行以下的阐发之前,笔者也请大年夜家卖力的思虑两个问题:

什么问题算机能问题?

什么是机能瓶颈?

第三部分

矫正之前文章中的几点差错:

try...catch...会造成必然的机能丧掉,但并不是比不用try...catch...机能要高。

数据库操作应用事务比不应用事务要速率快的问题。

关于数据库操作应用事务比不应用事务快的问题,得分两个方面来斟酌:

假如是一小我操作的话,应用事务会比不应用事务要快。

假如是多小我操作,应用事务就不必然快了,事理很简单,应用事务的话,是使用锁来进行并发节制的,假如盲目的觉得应用事务快,而滥用事务,那么就可能导致很严重的机能问题,多个用户进行并发操作的时刻,整个被一小我锁住了,得一个一个的来,可想而知,极有可能会由于滥用事务而造成机能瓶颈。笔者之前没有斟酌到第二点,不过值得荣耀的是,我也从来没有滥用过事务。

第四部分

总结:

Try...Catch...会损耗必然的机能,但不会造成机能瓶颈。

建议应用try...catch。

尽可能的斟酌到可能存在的非常并进行处置惩罚,尽可能的少呈现非常或不呈现非常。

不要滥用数据库事务前进机能,这样可能会造成并发造访的机能问题或机能瓶颈。

不要应用try...catch进行流程处置惩罚。

假如可能的话,只管即便要把轮回写在try...catch内部,而不要把try...catch放到轮回内部。

假如是try...catch中套着try...catch,非常处置惩罚机澳门新葡亰集团制是从内部的try...catch...往外部抛的,最先是在内部进行捕获、处置惩罚。

关于测试。虽然测试照样不能完全的达到真实情况,实际上真实的情况也是错综繁杂的,很难完全兼顾,但至少今朝的测试来说,笔者觉得,照样达到了我想要的目的。

关于什么是企业级开拓?笔者也只是有个隐隐的观点,从Google上搜索到了一下一段,与大年夜家分享下吧:

企业级开拓主如果针对企业级利用的开拓。

那么什么是企业级利用呢?

企业级利用是指那些为商业组织、大年夜型企业而创建并支配的办理规划及利用。这些大年夜型企业级利用的布局繁杂,涉及的外部资本浩繁、事务密集、数据量大年夜、用户数多,有较强的安然性斟酌。

现代的企业级利用决弗成能是一个个互相自力的系统。在企业中,一样平常都邑支配多个彼此连接的、互相经由过程不合集成层次进行交互的企业级利用,同时这些利用又都 有可能与其它企业的相关利用连接,从而构成一个布局繁杂的、超过Intranet和Internet的散播式企业利用群集。

此外,作为企业级利用,其不只要有强大年夜的功能,还要能够满意未来营业需求的变更,易于进级和掩护。

实际上看到这里,大年夜家可能对企业级开拓有一个粗略的熟识了,虽然观点已经给出,可是对付理解什么是企业级开拓,照样有一些艰苦。可能有的人也会问,观点都给你了,为什么还这么难理解?实际上笔者觉得,看待某个问题,得从多个方面来看,才理解的深刻,如当你问什么是唯心主义,实际上唯心主义是针对唯物主义来进行定义的,当你不明白唯心主义的时刻,生怕也是很难区分清楚唯物主义的。

就像企业级利用是按照什么分类的?难道还有小我级开拓......?

近来博客园盛行几个新词:”吉日风格“、”吉日风格的水贴“,可是究竟什么是吉日风格,满意什么前提才算吉日风格?满意什么前提又算是水贴?

着实这些都是异常主不雅的的观点,既然很主不雅,就没需要去追究了。

转自:http://www.cnblogs.com/wlb/archive/2009/12/18/1626816.html

您可能还会对下面的文章感兴趣: