【问题标题】:Python interpreter launch timePython解释器启动时间
【发布时间】:2017-07-19 22:56:05
【问题描述】:

我正在编写一个包,它会自动收集程序执行元数据,包括程序执行开始和终止的时间。

Python 标准库公开了一个钩子,让代码在解释器终止时通过atexit.register 自动运行。使用它来记录终止时间足以满足我的需求。

由于这种方法将大致记录解释器执行终止的时间,我希望相应的开始时间大约是解释器执行开始的时间。

是否可以在 Python 模块中确定这个时间?

【问题讨论】:

  • 注册一些代码运行的代码也是代码。在解释器启动之前,您不能运行代码。因此,如果没有某种时间旅行,不知道这怎么可能……您可以获得的最接近 IMO 的方法是在模块中记录时间,并将该模块设置为在加载顺序中非常早……
  • @Amadan 当然,如果不是准确的发布时间也没关系。我正在寻找的是用于交互式解释器的 PYTHONSTARTUP 之类的钩子,或者 sys.argv 之类的变量。理想情况下,记录的时间应该与源代码中包导入的发生无关。

标签: python


【解决方案1】:

我发现了一个包psutil,它提供了一种在问题How to retrieve the process start time (or uptime) in python 的答案https://stackoverflow.com/a/4559733 中获取Python 进程开始时间的方法。用法在答案中给出。

这具有跨平台的优点,但缺点是引入了依赖项。这对我的用例来说是可以接受的。我的包可以先尝试使用psutil,如果失败了,则返回当前时间作为近似值。

我写这个答案是因为我认为这个解决方案对其他人有帮助,但我仍然很想知道是否有办法通过 Python 内置函数或标准库来获取 Python 解释器的启动时间.

【讨论】:

    猜你喜欢
    • 2020-11-23
    • 1970-01-01
    • 1970-01-01
    • 2017-03-16
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多