我知道 Python 应该比 Javascript 更快。
Javascript:
console.log(Date.now());
VS(Python):
import time
print(int(time.time() * 1000))
我想知道如何加快速度。
代码是一样的,但是Python比Javascript慢。我应该如何解决这个问题?
我希望将 Python 代码的速度提高到与 Javascript 相同的速度。
我的代码中有一些函数需要这个,但 Python 代码对于它来说太慢了。
您所看到的速度差异实际上并不是因为 Python 通常比 JavaScript 慢。这可能是由于 Print/console.log 开销造成的。如果您测量包括 print 语句在内的执行时间,Python 的 print 可能比 JavaScript 的 console.log 慢。
JavaScript
// Save as timing.js
function measureTime() {
const iterations = 1000000;
// Warmup
for (let i = 0; i < 1000; i++) {
Date.now();
}
const start = performance.now();
for (let i = 0; i < iterations; i++) {
Date.now();
}
const end = performance.now();
console.log(`JavaScript Date.now() timing:`);
console.log(`Total time for ${iterations} calls: ${end - start} ms`);
}
measureTime();
输出
JavaScript Date.now() timing:
Total time for 1000000 calls: ~5-10 ms
Python
import time
from timeit import default_timer
def measure_time():
iterations = 1000000
# Warmup
for _ in range(1000):
time.time()
start = default_timer()
for _ in range(iterations):
time.time()
end = default_timer()
print(f"\nPython time.time() timing:")
print(f"Total time for {iterations} calls: {(end - start) * 1000} ms")
if __name__ == "__main__":
measure_time()
输出
Python time.time() timing:
Total time for 1000000 calls: ~15-20 ms
为了使其更接近,您可以通过存储并使用它作为参考来尝试 time_ns
from time import time_ns
class Timer:
def __init__(self):
self.get_time = time_ns
def now(self):
return self.get_time() // 1_000_000
timer = Timer()
# Then use:
timestamp = timer.now()
结果
Python time_ns() timing:
Total time for 1000000 calls: ~7-11 ms