• 处理问题的方式


    1. 测试代码的时候,如果某段代码效率特别差,可以通过注释部分代码的方式以确定问题代码的位置。测试的时候一定保证只有一部分代码在执行,排除其他干扰。

    2. 日志记录:

        1). 要有详细的日志记录,方便出错时查找。

        2). 在开发的时候可以将一些日志级别设为DEBUG,代码中增加一些debug级别的日志记录,方便调试。

             真正发布项目的时候再将日志级别改为info,那么debug级别的日志就不会记录下来。

        3). 为了防止代码中出异常,而导致相关日志没有记录。我们可以考虑将一些操作放到finally中。例如,在之前的代码中增加一个标识符,如:flag = false , 

             若出现异常,在异常捕获中将状态改为true ,最后在finally中统一处理。

    3. 如果需要记录某些日志型内容到数据库或文件中,一个一个记录比较麻烦。可以考虑,批量记录。一般情况下:一个主线程执行任务,一个辅助线程定时来记录数据。

        这里要考虑数据在内存中的保留和同步问题,可以借助concurrent 包下面的一些类,如:BlockQueue类型的队列,来临时存储数据,供辅助线程使用。

    4. 程序中如果使用线程,最好给线程一个名称,以方便监控。使用线程自己的命名可能会导致命名重复。

    5. 为防止数据在传输过程中丢失,可以将考虑将数据放到一个中间件中,如:数据库,ActiveMQ

    6. 缓存中数据的处理:为了提高代码效率,我们可以考虑将一部分数据库内容加载到内存中。但数据库会有插入、更新操作,为了防止这部分数据丢失。有两种方式处理:

        1). 当我们去缓存中查询不到想要的数据时,再去数据库中查询,看是否有想要的记录,如果有,获取并将数据放到缓存中。

        2). 定时任务更新缓存。

        上面两种解决方式中的问题,第一种方式,如果数据库中的数据被更新了,很可能导致缓存和数据库中数据不统一。第二种方式的时效性可能不太好。

    7. 如果某一任务要频繁的连接数据库,可以考虑使用单例模式。

    8. 获取文件路径的两种常用方式:

        1). System.getProperty("user.dir")          // 注意Tomcat下获取的是tomcat中的bin目录,直接使用jar文件的项目中可以考虑。

        2). Test.class.getResource("/").getPath()   // 获取Tomcat中部署项目的classes目录

    9. 一个要一直运行的循环或程序中,要注意异常的处理。保证即使出现异常,也不要让程序停下来。

     

  • 相关阅读:
    Linux内核编译測试
    Matlab pchiptx
    汇编 -- Hook API (MessageBoxW)
    三种SVM的对偶问题
    JAVA性能优化的五种方式
    C++字符串操作笔试题第二波
    JavaScript实现拖拽预览,AJAX小文件上传
    vijos-1382 寻找主人
    百度2015商务搜索实习面试总结
    [Swift]LeetCode790. 多米诺和托米诺平铺 | Domino and Tromino Tiling
  • 原文地址:https://www.cnblogs.com/Jtianlin/p/4264024.html
Copyright © 2020-2023  润新知