`
抛出异常的爱
  • 浏览: 627898 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

答复: 关于性能优化

阅读更多
今天看到一个贴子:
http://www.iteye.com/topic/952507

所以去翻了翻以前的回贴.整理一下
http://www.iteye.com/topic/812468

mercyblitz 写道
抛出异常的爱 写道
cectsky 写道
HuangSui.cn 写道
if(log.isDebug()){
   log.debug("xxxx"+bean+"xxxxx");
}


这样有什么问题?

多次一举

从架构师的角度的的确确不是多此一举


bean的toString方法可能会产生底归性的数据大查询,遍历所有的节点大于几百上千也常 常 见到

更有可能会产生对blob字段的数据日志输出

我说的是把这行代码 这样的代码 删了.
这种debug是没必要的存在.
这种没有作用的!
隐藏着可能会产生严重问题的代码!
(以至于必须用编程规范约束的代码)!
的出现就是对系统,自己,同事,客户的不负责任.


PS:楼上几个不是在开 我玩笑么?


看场景,大多数Bean是Thin 的,如果是Rich的话,可以换方法,或者修改toStrnig的约束。

再说debug的日志级别要开放,产品上一般不开放,对客户来说不那么重要。


抛出异常的爱 写道
ironsabre 写道
iaimstar 写道
我记得啥书来着

里面说 优化的第一原则

不要优化


这么说是因为低水平的选手太多了,怕大家乱搞。
真正的高手不受这个原则限制。

你确认看过第二句么?
要不要我把页码告诉你你再过去看看第二行写的是什么 ?


PS:很多toString方法是eclipse生成的,
还有toString是用Common lang toStringBuilder反射出来的.
集合包里的listtostring就是底归的....
没有外面的if(isDebug) 这些toString方法会被 + 号所触发.
在hibernate里轻轻松松破掉lazy load

当然这都是极端情况.
尽量不要写这种可能有问题而且无意义的代码才是我主要要说的....

如果需要至少要把这种代码包装起来.....
class MyLogZ{

 public static void DEBUG(Logger log , Object .... message){
    if(log.isDebug())return;
    StrinBuilder buffer = new StringBuilder();
    for(Object o message){
          buffer.appand(""+o);
    }
    log.debug(buffer.toString());
 }

}


战略不战略我不知道.
规则必有因.
去掉规则也有很多办法

分享到:
评论
5 楼 jiasky 2011-06-25  
这样的帖子很精彩,
4 楼 抛出异常的爱 2011-03-26  
如果运维没开sever mode那不是死了?
3 楼 抛出异常的爱 2011-03-26  
log.debug("xxxx"+bean+"xxxxx"); 
-----------------------------------
String log = "XXX"+bean+"cccc";
log.debug(log);

上下两段代码相等......
你可以试试在toString方法里加一个sleep 2000 看看关了debug他会不会不睡
2 楼 油炸大龙虾 2011-03-26  
如果不开启日志,并且把代码重构下FCUK = log.is_debug_enabled,
jvm在开启server_mode并解释足够时间以后,判定符合优化条件,
C1会这段代码整体替换掉。
所以我认为这里核心的问题,不是string优化。
1 楼 DOCDOC 2011-03-10  
非常有意义的细节问题

相关推荐

    Domino 6应用程序性能优化指南

    基于多年来评估定制的Notes应用程序来诊断性能问题方面的丰富经验,我们编译了影答复用程序性能的最通用的属性。我们在一系列文章的第一篇文章中介绍众所周知的影答复用程序性能的数据库、视图和表格属性。我们将...

    对《基于Matlab语言的高性能混凝土配合比的优化设计》商榷的答复.pdf

    对《基于Matlab语言的高性能混凝土配合比的优化设计》商榷的答复.pdf

    数据库详细资料课件 对方答复

    这通常包括需求分析、概念设计(用E-R图表示实体、属性和关系)、逻辑设计(将E-R模型转换为关系模式)和物理设计(考虑存储和性能优化)。可能还会讨论数据独立性,即逻辑数据与物理数据之间的分离,确保应用不受...

    Delphi SuperObject 解决节点乱序问题

    原作者是用二叉树对性能做了极大的优化。但是网上修改的方法性能不行。 2. 属性数大于 32 时会出错。(原来用的是二叉树,修改后部分算法未修改,导致此问题)。 我采用的是重写遍历器的方法,和原版性能接近。 ...

    CEDAR 文档说明1

    **CEDAR概述** CEDAR(未提供全称)是由华东师范大学数据科学与工程学院研发的一款基于OceanBase 0.4.2的可扩展...对于任何关于CEDAR文档内容的问题,可以通过电子邮件与研发团队取得联系,他们将及时给予答复和帮助。

    4_07课堂发言记录1

    在本次软工实验课堂记录中,讨论了关于Node.js性能优化、异常处理、应用场景以及用例描述等方面的知识点,以下是详细的解释: 1. **Node.js性能优化**: - 问答环节的第一个问题是关于Node.js的工作重点是否考虑了...

    AA问题:使用SQLite3数据库来处理用户,问题,对问题的答复和喜欢等等。

    8. **性能优化**: 对于大量数据或高并发场景,可以考虑索引优化、分页查询和缓存策略来提升系统性能。 9. **错误处理与事务**: 在处理数据库操作时,应处理可能出现的错误,如数据不一致或数据库连接问题。事务...

    Java面试题大合集.doc

    - **优化器使用**:数据库查询优化器利用索引信息来规划更高效的执行计划,提高系统性能。 2. **数据库索引的缺点**: - **存储开销**:索引需要额外的磁盘空间,随着数据量增长,索引文件也会变大。 - **插入...

    分布式数据确认架构.pptx

    - **性能优化**:通过不断的技术创新和算法优化,未来的分布式确认系统将具备更高的性能和更强的适应能力。 综上所述,分布式确认架构是分布式系统中保证数据一致性的关键技术之一,涵盖了从理论模型到实际应用的...

    2016年下半年北京造价工程师工程计价:工程造价资料试题.pdf

    14. **钢筋性能**:抗拉性能是钢筋的最主要性能,因为它通常用作抗拉材料。 15. **系数估算法**:系数估算法又称因子估算法,它是根据已知的主体工程费或主要设备费为基础,估算整个项目总投资的方法。 16. **工期...

    Reply-tools-analysis-2021:计算参与度和采用度指标以评估答复工具的影响

    最后,基于这些分析结果,我们可以对答复工具的性能进行评估,提出改进策略,以提高用户参与度和采用度,从而提升工具的整体效果。 总的来说,"Reply-tools-analysis-2021"项目提供了一个全面的框架,通过Jupyter ...

    毕业设计--面向高考招生咨询的问答系统设计与实现.zip

    8. **性能优化**:对于高并发的在线服务,系统还需要考虑性能优化,如缓存策略、负载均衡等,以确保在高峰期能够稳定运行。 9. **测试与评估**:系统开发完成后,需要进行功能测试、性能测试和用户接受度测试,以...

    2021-2022年收藏的精品资料造价工程师《建设工程计价》:生产准备及开办费的内容考试题.docx

    - **成本**:通过优化施工方案降低工程成本。 4. **租赁成本计算** - **公式**:年租金 = 设备价格 × (折现率 + 附加率) - 设备价格 = 68万元 - 折现率 = 10% - 附加率 = 4% 5. **管道吹扫压力控制** - **...

    SCM:西门子内训资料——供应商管理.pptx

    2. **供应商评估**:西门子采用统一的评估标准对供应商进行分级,这些标准可能包括价格、质量、交付性能、服务、创新能力等。评估结果会在公司内部的评估系统上公布,以便所有相关人员了解供应商的绩效。此外,还会...

    SWAIOT物端对接工具使用指南1

    缓冲区大小可调,答复模式有直接答复和延迟答复两种,建议使用周期答复以优化性能。 最后,导出设置让用户选择输出代码的路径,生成的文件夹包含代码文件和属性表。其中,`product_config.xlsx`用于记录设置信息,`...

    Reply-tools-analysis-2020:计算参与度和采用度指标以评估答复工具的影响

    在IT行业中,数据分析是至关重要的,特别是在评估工具的性能和影响力时。本项目"Reply-tools-analysis-2020"就是一个实例,它专注于通过计算参与度和采用度指标来研究答复工具的效果。在这个过程中,我们使用了数据...

    机器人自动回复问答.docx

    14. 用户反馈:用户可以对机器人的性能和功能提供反馈,以帮助改进系统。 15. 问题解答能力:机器人能回答一些基础问题,如数学问题(1加1等于3),并能够进行基本的对话和玩笑。 16. 下载与安装:机器人可以通过...

    beetl模版引擎文档

    这得益于Beetl从宏观到微观的多层面优化,包括但不限于优化渲染引擎、IO二进制输出、字节码属性访问、使用一维数组存储上下文、静态文本合并处理、重复使用字节数组以及模板缓存和运行时优化等技术。 4. 易于整合:...

Global site tag (gtag.js) - Google Analytics