黑松山资源网 Design By www.paidiu.com
前言
Java 中最通用的日志模块莫过于 Log4j 了,在 python 中,也自带了 logging 模块,该模块的用法其实和 Log4j 类似。日志是记录操作的一种好方式。但是日志,基本都是基于文件的,也就是要写到磁盘上的。这时候,磁盘将会成为一个性能瓶颈。对于普通的服务器硬盘(机械磁盘,非固态硬盘),Python日志的性能瓶颈是多少呢?今天我们就来测一下。下面话不多说,来一起看看详细的介绍:
测试代码如下:
#! /usr/bin/env python #coding=utf-8 # ============================ # Describe : 给平台提供的日志 # D&P Author By: 常成功 # Create Date: 2016/08/01 # Modify Date: 2016/08/01 # ============================ import time import os import logging print "Start test ...." s_tm = time.time() test_time = 10.0 # 测试时间10秒 e_tm = s_tm + 10 j = 0 pid = str(os.getpid()) while 1: now_time = time.time() j += 1 if now_time > e_tm: break # 生成文件夹 lujing = "d:\\test_log" if not os.path.exists(lujing): os.mkdir(lujing) fm2 = '%Y%m%d' YMD = time.strftime(fm2, time.localtime(now_time)) filename = 'recharge_' + YMD + '.log' log_file = os.path.join(lujing, filename) t = "\t" log_msg = str(j) +t+ str(now_time) +t+ pid the_logger = logging.getLogger('recharge_log') f_handler = logging.FileHandler(log_file) the_logger.addHandler(f_handler) the_logger.setLevel(logging.INFO) # To pass exception information, use the keyword argument exc_info with a true value the_logger.info(log_msg, exc_info=False) the_logger.removeHandler(f_handler) rps = j/test_time print rps, "rows per second"
结果为:
Start test ....
2973.0 rows per second
Python的logging性能:
7200转的机械磁盘,测了几次,每秒的能写入日志的行数(每行就是一条日志),数量基本在 2800-3000 之间。此时,磁盘IO基本已经跑满。(在3.3Ghz的CPU上,CPU占用大约40%)。
Python的logging多进程:
python 的 logging模块,是线程安全的。但对于多进程的程序来说,怎么去写日志文件呢?我的解决办法是,每个进程的PID,写一个单独的日志文件。再用算法把所有进程的日志合并起来,生成新的日志。
提示:由于磁盘IO已经到达瓶颈,所以多进程并不能提高日志性能。高性能日志,需要用缓存,或者分布式日志。
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- 【原神】V5.0攻略 | 林尼攻略一图流
- 李翊君.1993-相思的烈酒【上华】【WAV+CUE】
- 古巨基.1998-LEO.KU(国)【千禧年代】【WAV+CUE】
- 郭子.2001-原来你什么都不想要创作集丫滚石】【WAV+CUE】
- 《使命召唤:黑色行动6》新预告公布!10月25日发售
- Atlus《暗喻幻想》媒体评分汇总:高分好评如潮!
- 2024金摇杆奖提名揭晓 《黑神话》角逐最佳视觉设计!
- 群星《新说唱2024 第3期 (上)》[320K/MP3][32.76MB]
- 群星《新说唱2024 第3期 (上)》[FLAC/分轨][95.38MB]
- 群星《新说唱2024 第3期 (下)》[320K/MP3][31.36MB]
- 幻兽帕鲁手游什么时候正式上线 最新消息一览
- 西普大陆BOSS位置盘点 解锁天启纪元玩法
- 西普大陆精灵进阶培养攻略 精灵养成指南
- dnf手游法控法系职业哪个强 dnf手游法控法系职业强度排行
- 魔兽世界血藤护目镜图纸在哪买 wlk血藤护目镜图纸购买位置介绍