做了一个小的测试工具,可以查看log,点击查看log,会选择系统默认的编辑器打开log,同时就问了我一个问题,为什么打开log后,删除文件内的日志,在产生的日志就不能写到日志里了?对于这个问题,是由于在写入日志的时候,只打开了一次log,对log做操作,破换了log,所以不能继续写入。要解决这个问题,只需要在写入log时,每次打开一次文件即可。但是,随之而来的问题便是频繁的对文件执行打开操作与只打开一次文件的效率有什么差异?所以下面做了一个小测试。
分别对写入文件10万次、100万次,1000万次,两者所用时间的差异。
测试结果如下:
10万次
开始写入文件log1
打开一次文件发送所用的时间为: 0.234513
te.tv_usec: 1493280598136496
tv.tv_usec: 1493280597901983
开始写入文件log2
频繁打开文件发送所用的时间为: 0.691914
te.tv_usec: 1493280604584612
tv.tv_usec: 1493280603892698
100万次
开始写入文件log1
打开一次文件发送所用的时间为: 2.2169
te.tv_usec: 1493280901167297
tv.tv_usec: 1493280898950394
开始写入文件log2
频繁打开文件发送所用的时间为: 10.1719
te.tv_usec: 1493280916001532
tv.tv_usec: 1493280905829610
1000万次
开始写入文件log1
打开一次文件发送所用的时间为: 21.2031
te.tv_usec: 1493280994099891
tv.tv_usec: 1493280972896765
开始写入文件log2
频繁打开文件发送所用的时间为: 90.5125
te.tv_usec: 1493281090662242
tv.tv_usec: 1493281000149779
由此可见,频繁打开文件的效率低于只打开一次文件的效率,大约相差4-5倍。
此测试程序已上传github:https://github.com/shangFangBaoJian/lianXuShuChuWenJian.git