python中日志logging模块的性能及多进程详解
2023-09-14 09:00:13 时间
使用Python来写后台任务时,时常需要使用输出日志来记录程序运行的状态,并在发生错误时将错误的详细信息保存下来,以别调试和分析。Python的logging模块就是这种情况下的好帮手。本文就介绍了python中日志logging模块性能及多进程的相关资料,需要的朋友可以参考下。
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
#
============================
importtime
importos
importlogging
print"Start test
...."
s_tm=time.time()
test_time=10.0#
测试时间10秒
e_tm=s_tm 10
j=0
pid=str(os.getpid())
while1:
rps=j/test_time
printrps,"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已经到达瓶颈,所以多进程并不能提高日志性能。高性能日志,需要用缓存,或者分布式日志。
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助.
相关文章
- Python MySQLdb模块连接操作mysql数据库实例_python
- 【Python】使用POST方式抓取有道翻译结果
- 小白学 Python 爬虫(7):HTTP 基础
- python使用threading获取线程函数返回值的实现方法
- Python子进程 (subprocess包)
- python批量下载
- Python 触“类”旁通1|以单链表为例,一步步深入了解类
- Atitit web httphandler的实现 java python node.js c# net php 目录 1.1. Java 过滤器 servelet1 1.2. Python的
- Python 办公自动化,全网最全整理来了!拒绝无效率加班!
- Python之matplotlib:基于matplotlib库利用python语言实现一张画布显示多张图的多种方法
- Python编程语言学习:包导入和模块搜索路径(包路径)简介、使用方法(python系统环境路径的查询与添加)之详细攻略
- Python语言学习之打印输出那些事:python输出图表和各种吊炸天的字符串或图画、版权声明(如README.md)等之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)
- Python:python代码编程带你玩转双色球(了解双色球的概率逻辑)
- Python之pyarrow:pyarrow的简介、安装、使用方法之详细攻略
- Python:利用python代码编程实现将视频的avi格式转换为MP4格式
- 100天精通Python(进阶篇)——第38天:多进程multiprocessing模块基础+代码实战
- 已解决2.Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and wi
- 〖Python自动化办公篇⑲〗 - python实现邮件自动化 - 邮件发送
- 相关性分析热力图(Python&Matlab代码实现)
- Python 3 自动化运维之dnspython 模块
- python web py入门(57)- jQuery - 多个JS代码的文件
- Python开发案例之用Python子进程关闭Excel自动化中的弹窗
- Python获取文件名
- Python—进程、线程、协程
- 【Python基础】python爬虫之异步网络爬虫ǃ
- 教你使用python在终端创建炫酷二维码!!!