2017-11-16 7 views
-3

だから、どのように速くpythonが変数を出力できるかを調べようとしています。これを使ってPythonがgoogolを計算するのにかかる時間を計算します。今これは理論的に不可能だが、私は私が得るばかげた数を見たいと思う。だから私は1秒間にいくつの変数が出力されるのかを知るためのプログラムを作りました。Pythonが1秒間に何個の数値を計算できるか

import time 
start_time = time.time() 
x = 0 
while True: 
    elapsed_time = time.time()-start.time 
    if int(elapsed_time) != 00:00:01: 
     x+=1 
     print(x) 
    else: 
     break 
final = "Python calculated "+ x +" numbers in 1 second!") 
end = input("") 
+0

あなたは単に数字を計算する以外にも多くのことをしています。 –

+1

timeitモジュールを使用してください。あなたはより正確な答えを得るでしょう – SuperStew

+0

あなたはあなたの質問をあまりにも早くあなたの質問を提出したようです。あなたは何をしたいのかを幾分特定して、あなたはプログラムを書いています。 ...そして?どうしたの?何が効いていないのですか? – David

答えて

0

与えられたコンピュータでPythonがいくつかの番号を別の番号に追加することができるプログラムを作成するのは難しくありません。目的は、管理できるほどのオーバーヘッドでできるだけ速く実行するループを持つことです。次のプログラムは、このようなループを約1分間実行してから、1秒あたりに実行された加算命令の数を合理的に見積もります。

#! /usr/bin/env python3 
import _thread 
import time 

TIMEOUT = 60 


def main(): 
    interrupt_main_after(TIMEOUT) 
    count = run_addition_loop() 
    print('About', round(count/TIMEOUT, 3), 'numbers were added per second.') 


def interrupt_main_after(seconds): 
    def interrupter(): 
     time.sleep(seconds) 
     _thread.interrupt_main() 

    _thread.start_new_thread(interrupter,()) 


def run_addition_loop(): 
    count = 0 
    try: 
     while True: 
      count += 1 
    except KeyboardInterrupt: 
     return count 


if __name__ == '__main__': 
    main() 

あなたはここにあなたのコンピュータ上のほかのベンチマークを実行する他の方法を見つけることができます:Can this loop be sped up in pure Python?パフォーマンスは、プログラムと個々のコンピュータによって異なります。

+0

私が使用しているコンピュータで実行されているものは、次のような出力を生成します: '約27229815.667秒ごとに数字が追加されました」 –

関連する問題