【发布时间】:2019-09-12 10:35:36
【问题描述】:
我正在使用 API 从我的项目中获取一些服务。 API 调用花费的时间太长,所以我认为原因之一可能是我在项目中放置了大量日志,并且 IO 读取/写入需要时间。
我正在使用logging。我的猜测是 LOG_LEVEL 丢弃较低优先级的日志,较高优先级的 API 调用应该在更短的时间内完成。但时间几乎相同(差异在 1/10 秒的范围内)。
我从here 得到的关于 LOG_LEVEL 和性能的唯一参考是
这样做的好处是,如果您将日志级别设置为 WARN,则信息和调试消息几乎不会影响性能。
这里有几点需要注意
我没有将我的日志配置为流式传输到任何日志服务,例如 Kibana。
我已经检查了this 的情况,我没有在日志消息中做任何预处理。
我已经完成了基本的 Logger 初始化,即
导入日志
logger = logging.getLogger(__name__)
和没有使用任何文件写入日志如下。 LOG_LEVEL 作为环境变量之一给出。
logging.basicConfig(filename="file_name.log")
考虑到其他一切都是最佳的(如果一切都不是最佳的,那么更高优先级的日志应该花费更少的时间),由于日志读/写,我猜测更多时间是错误的吗?如果不是,那么为什么使用高优先级 LOG_LEVEL 标志并没有减少时间?
日志模块在哪个默认位置存储日志?
【问题讨论】:
-
你试过没有日志吗?它的性能更好吗?
-
如果您遇到性能问题,为什么不使用profiler 而不是猜测?
-
@itzMEonTV 日志是不可或缺的一部分。日志必须在那里。
-
@Leon 这里的问题不是知道我的程序是如何执行的,而是如果最终用户犯了一些错误能够调试。
-
@thepurpleowl 我明白了。我的评论与您问题中的第二句话有关:API 调用花费的时间太长,所以我认为原因之一可能是我在项目中放置了大量日志,而 IO 读/写是需要时间。
标签: python performance logging performance-testing