gpt4 book ai didi

python - 保证与 Python 程序同时启动的 C 程序将具有相同的整数时间值

转载 作者:行者123 更新时间:2023-11-30 14:32:56 29 4
gpt4 key购买 nike

我目前正在编写涉及将数据从 C 程序传输到 Python 程序的代码。这要求它们都具有完全相同的 time 整数值。我获取时间的方法是:

  • C 语言的时间(0)
  • int(time.time()) 对于 Python

但是,我的输出不一致,导致我相信这不会产生相同的值。 C 程序运行时间 < 0.001 秒,同时:

time ./cprog | python pythonprog.py

给出的时间通常如下所示:

    real    0m0.043s    user    0m0.052s    sys     0m0.149s

大约每 5 次运行中有一次会产生预期输出。我可以使其更加一致吗?

最佳答案

不是解决方案 - 而是解释。

启动 python(或其他解释/VM 语言)时,通常会产生与读取和解析所需的许多模块相关的启动成本。即使像“print 5”这样的小型 Python 程序也会执行大量 IO。

启动成本将延迟当前时间的初始查找。

从 strace 输出来看,调用 python 代码将导致 >200 个开放调用、~ (f)stat、>20 个 mmap 调用等。

strace -c python prog.py
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
31.34 0.000293 1 244 178 openat
9.84 0.000092 1 100 fstat
9.20 0.000086 1 90 60 stat
8.98 0.000084 1 68 rt_sigaction
7.81 0.000073 1 66 close
2.14 0.000020 2 9 brk
1.82 0.000017 9 2 munmap
1.39 0.000013 1 26 mmap
1.18 0.000011 2 5 lstat
...

关于python - 保证与 Python 程序同时启动的 C 程序将具有相同的整数时间值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59603946/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com