`

《透视java》第六章

阅读更多

第六章  使用有效的跟踪技术

 

跟踪技术的使用准则

 

有效使用跟踪技术的准则

 

  • 要尽可能地使用跟踪技术
  • 要确保每个跟踪中都包含时间,类和方法名,这是产生跟踪信息的基本条件。
  • 在关键代码部分一定要编写跟踪代码,例如在进行外部系统调用,数据库调用以及磁盘访问时。这有利于故障点的简单确认。
  • 一定要加入参数值和环境变量,这将有助于在进行跟踪时更好地了解执行环境。例如,在每个跟踪中包括用户身份标示,可以滤出针对某一特定用户的操作信息。
  • 当第一次捕捉到异常事件时要输出堆栈信息。
  • 当写入信息时确保使用不同的跟踪级别。对于系统和错误信息使用最重要的级别,而对于干扰信息则使用调式级别,因为他们对于系统的纠错并不是很重要。这有利于我们更好地控制日志文件的长度和程序的花销。

不要滥用跟踪技术的准则

 

  • 不要使用System.out.println写入跟踪信息。这会给程序带来永久的花销而缺乏灵活性。使用一个日志框架代替他。
  • 不要使用Exception.printStackTrace()来输出异常事件,因为它总是将输出写到System.out。要使用日志框架提供的方法。
  • 不要将跟踪插入到重复成百上千次的循环中。
  • 不要将跟踪插入到频繁调用的小方法中。

另一个需要避免的习惯是在传递参数到日志框架时使用 “+”操作符连接字符串。即便是跟踪级别提高,运行时仍旧会执行为结果字符串分配新缓冲区和复制变量字符串到其中的昂贵操作。因而不使用


logger.debug("Message received from host :" +  host + ", text :"  + text )

 

而改为使用

 

if (logger.isDebugEnabled() == true )

logger.debug("Message received from host : ' + host + " ,text :' + text )

 

第二段代码的执行成本就降低了许多,因为只要调试跟踪不起作用就不会发生字符串连接。

 

 

分享到:
评论

相关推荐

    pjt.zip_java体_pjt_立方体投影_透视变换 java_透视投影

    Java标准库并不直接提供图形学相关的类,但可以通过第三方库如JavaFX或 jogl(Java Open GL绑定)来实现3D图形的绘制。在这个案例中,开发者可能自定义了矩阵类来处理变换,包括平移、旋转和缩放,这些都是实现透视...

    用Java Steams创建数据透视表

    除了使用Java 8 Streams,我们还可以借助第三方库,如Apache Commons CSV或Apache POI,来处理CSV数据和创建Excel风格的数据透视表。Apache POI允许我们在Java中直接操作Excel文件,包括创建和更新数据透视表。 ...

    java初学者必看

    第6章 数组 6.1 一维数组 6.1.1 数组的概念 6.1.2 一维数组的声明 6.1.3 一维数组的初始化 6.1.4 一维数组的使用 6.1.5 一维数组的空间模型 6.1.6 基本数据类型数组 6.1.7 对象数组 6.1.8 数组参数 6.2 二...

    Java3D 指导教程

    1. **入门**:这一章将引导读者了解Java3D的基本概念,包括如何设置开发环境,创建第一个简单的3D场景,以及理解场景图的基本结构。 2. **几何对象**:此章详细介绍了如何在Java3D中创建和操作几何形状,如点、线、...

    MyEclipse 6 Java EE 中文版

    - **MyEclipse 6**是该系列产品的第六个主要版本,它在前代基础上进行了大量的改进和增强,以更好地满足开发者的需求。 #### 二、目标读者与应用场景 - **目标读者**:本书旨在帮助初学者快速掌握MyEclipse 6 Java...

    Java3D 教程 ch4

    在深入探讨Java3D教程第四章“交互”之前,我们首先需要理解Java3D是什么以及它在三维图形处理中的角色。Java3D是Sun Microsystems(现为Oracle的一部分)开发的一个高级三维图形应用程序接口(API)。它构建在Java...

    《MyEclipse 6 Java 开发中文教程》前10章

    第六章 管理应用服务器 95 6.1简介 95 6.2 Servers 视图 95 6.3浏览应用服务器连接器 96 6.4配置连接器 97 6.4.1第1步 配置服务器的安装信息 98 6.4.2第2步 启用连接器 98 6.4.3第3步 选择启动服务器时候所用的JDK ...

    Eclipse RCP应用系统开发方法与实战(第六章)

    在《Eclipse RCP应用系统开发方法与实战(第六章)》中,我们将深入探讨Eclipse RCP的核心概念、设计模式以及实际开发过程中的关键技巧。 第六章可能涵盖以下知识点: 1. **RCP基础**:Eclipse RCP是Eclipse IDE的...

    MyEclipse 6 Java 开发中文教程

    ### 第二章:开发第一个Java应用程序 在这一部分,作者通过手工编写、编译并运行Java程序的方式,让初学者从实践中感受Java编程的基本流程。紧接着,通过使用Eclipse/MyEclipse进行同样的操作,展示了IDE的强大功能...

    java正式课程.md

    #### 七、第一个Java程序 1. **创建项目**:在Eclipse中新建Java项目。 2. **创建类**:建议使用英文单词,并以首字母大写。 3. **添加main方法**:`public static void main(String[] args) { }`,这是程序的入口...

    Java 2D高级绘图

    #### 第六节 三维图形处理的设计技术 尽管 Java 2D 主要关注于二维图形的绘制,但在某些情况下也需要考虑三维效果。本节将介绍一些基本的技术,用于在 Java 2D 中模拟三维效果: - **透视投影**:介绍透视投影的...

    MyEclipse 6 Java EE开发中文手册

    - **第二章: 开发第一个Java应用程序** - **2.1 介绍:** 介绍Java应用程序的基本概念和开发流程。 - **2.2 手工编写,编译并运行Java程序:** 教授如何不使用IDE手动完成Java程序的编写、编译和运行。 - **2.3 ...

    java2d 文档

    ### 第六节 三维图形处理的设计技术 虽然Java 2D主要是二维图形API,但它也支持一些三维图形处理,如透视投影和隐藏面消除。这些技术可以帮助在2D屏幕上模拟3D效果。 ### 第七节 同环境交互 Java 2D API允许与...

    javaSocket.pdf

    第6章深入剖析 最后一章深入剖析了网络编程的一些高级主题。首先讲解了缓冲和TCP的关系,以及死锁的风险。接着讨论了性能相关的优化,包括TCP套接字的生存周期、连接、关闭连接和多路复用揭秘。本章的末尾也安排了...

    轮廓问题的java实现

    Java的`java.util.TreeMap`或第三方库(如JTS Topology Suite)可以提供此类功能。 - 对于大规模的城市,可能需要分块处理或并行计算来提高效率。 5. **测试与验证**: - 为了确保代码的正确性,需要编写单元测试...

Global site tag (gtag.js) - Google Analytics