前言

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已经到达瓶颈,所以多进程并不能提高日志性能。高性能日志,需要用缓存,或者分布式日志。
总结
以上就是这篇文章的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# python
# logging多进程
# logging模块
# python中logging模块
# Python使用logging实现多进程安全的日志模块
# python logging多进程多线程输出到同一个日志文件的实战案例
# python 实现多进程日志轮转ConcurrentLogHandler
# python多进程下实现日志记录按时间分割
# python logging日志模块以及多进程日志详解
# 详解Python中logging日志模块在多进程环境下的使用
# python多进程日志以及分布式日志的实现方式
# 都是
# 将会
# 几次
# 成为一个
# 这篇文章
# 带了
# 并不能
# 就来
# 再用
# 谢谢大家
# 多说
# 高性能
# 解决办法
# 需要用
# 莫过于
# 要写
# 行数
# 也自
# 这时候
# 有疑问
相关文章:
如何零基础开发自助建站系统?完整教程解析
建站之星上传入口如何快速找到?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何在建站宝盒中设置产品搜索功能?
如何在阿里云服务器自主搭建网站?
如何自定义建站之星网站的导航菜单样式?
东莞专业制作网站的公司,东莞大学生网的网址是什么?
山东云建站价格为何差异显著?
建站DNS解析失败?如何正确配置域名服务器?
交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?
广州建站公司哪家好?十大优质服务商推荐
在线制作视频网站免费,都有哪些好的动漫网站?
如何彻底删除建站之星生成的Banner?
厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?
如何通过PHP快速构建高效问答网站功能?
建站之星代理如何优化在线客服效率?
如何快速搭建FTP站点实现文件共享?
高性能网站服务器部署指南:稳定运行与安全配置优化方案
如何选择高效可靠的多用户建站源码资源?
制作表格网站有哪些,线上表格怎么弄?
建站之星安装失败:服务器环境不兼容?
建站之星备案是否影响网站上线时间?
高端企业智能建站程序:SEO优化与响应式模板定制开发
购物网站制作公司有哪些,哪个购物网站比较好?
大连企业网站制作公司,大连2025企业社保缴费网上缴费流程?
建站之星安装提示数据库无法连接如何解决?
重庆市网站制作公司,重庆招聘网站哪个好?
宝塔面板创建网站无法访问?如何快速排查修复?
韩国服务器如何优化跨境访问实现高效连接?
如何在Windows服务器上快速搭建网站?
如何通过VPS建站无需域名直接访问?
如何续费美橙建站之星域名及服务?
网站制作需要会哪些技术,建立一个网站要花费多少?
济南企业网站制作公司,济南社保单位网上缴费步骤?
简单实现Android文件上传
深圳网站制作案例,网页的相关名词有哪些?
如何获取PHP WAP自助建站系统源码?
公司网站设计制作厂家,怎么创建自己的一个网站?
建站之星导航如何优化提升用户体验?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
javascript基本数据类型及类型检测常用方法小结
javascript中的try catch异常捕获机制用法分析
IOS倒计时设置UIButton标题title的抖动问题
建站之星如何保障用户数据免受黑客入侵?
定制建站流程解析:需求评估与SEO优化功能开发指南
打鱼网站制作软件,波克捕鱼官方号怎么注册?
建站之星如何实现PC+手机+微信网站五合一建站?
h5在线制作网站电脑版下载,h5网页制作软件?
清单制作人网站有哪些,近日“兴风作浪的姑奶奶”引起很多人的关注这是什么事情?
建站org新手必看:2024最新搭建流程与模板选择技巧
*请认真填写需求信息,我们会在24小时内与您取得联系。