为什么Python在计算时间上比Javascript慢

问题描述 投票:0回答:1

我知道 Python 应该比 Javascript 更快。

Javascript:

console.log(Date.now());

VS(Python):

import time
print(int(time.time() * 1000))

我想知道如何加快速度。

代码是一样的,但是Python比Javascript慢。我应该如何解决这个问题?

我希望将 Python 代码的速度提高到与 Javascript 相同的速度。

我的代码中有一些函数需要这个,但 Python 代码对于它来说太慢了。

javascript python
1个回答
0
投票

您所看到的速度差异实际上并不是因为 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
© www.soinside.com 2019 - 2024. All rights reserved.