1. 测试代码的时候,如果某段代码效率特别差,可以通过注释部分代码的方式以确定问题代码的位置。测试的时候一定保证只有一部分代码在执行,排除其他干扰。
2. 日志记录:
1). 要有详细的日志记录,方便出错时查找。
2). 在开发的时候可以将一些日志级别设为DEBUG,代码中增加一些debug级别的日志记录,方便调试。
真正发布项目的时候再将日志级别改为info,那么debug级别的日志就不会记录下来。
3). 为了防止代码中出异常,而导致相关日志没有记录。我们可以考虑将一些操作放到finally中。例如,在之前的代码中增加一个标识符,如:flag = false ,
若出现异常,在异常捕获中将状态改为true ,最后在finally中统一处理。
3. 如果需要记录某些日志型内容到数据库或文件中,一个一个记录比较麻烦。可以考虑,批量记录。一般情况下:一个主线程执行任务,一个辅助线程定时来记录数据。
这里要考虑数据在内存中的保留和同步问题,可以借助concurrent 包下面的一些类,如:BlockQueue类型的队列,来临时存储数据,供辅助线程使用。
4. 程序中如果使用线程,最好给线程一个名称,以方便监控。使用线程自己的命名可能会导致命名重复。
5. 为防止数据在传输过程中丢失,可以将考虑将数据放到一个中间件中,如:数据库,ActiveMQ
6. 缓存中数据的处理:为了提高代码效率,我们可以考虑将一部分数据库内容加载到内存中。但数据库会有插入、更新操作,为了防止这部分数据丢失。有两种方式处理:
1). 当我们去缓存中查询不到想要的数据时,再去数据库中查询,看是否有想要的记录,如果有,获取并将数据放到缓存中。
2). 定时任务更新缓存。
上面两种解决方式中的问题,第一种方式,如果数据库中的数据被更新了,很可能导致缓存和数据库中数据不统一。第二种方式的时效性可能不太好。