Python programının yürütülmesi için geçen süreyi nasıl ölçeriz?

Diyelimki Python’da çalışması biraz zaman alan bir komut satırı programım var.

İlişkili olduğu konular : how to, nasıl

Diyelimki Python’da çalışması biraz zaman alan bir komut satırı programım var. Bu programın yürütülmesi için geçen süreyi tam olarak bilmek istiyorum. Ne yaparım?

En basit yol olarak Python time modülünü içe aktarabiliriz:

import time
baslangic_zamani = time.time()
main()
print("--- %s saniye ---" % (time.time() - baslangic_zamani))

Çıktı:

--- 0.764891862869 saniye ---

Bu kod gerçek zamanı hesaplar (diğer programlar tarafından kullanılan süre de dahil). Bu nedenle bilgisayarınız başka şeyler yapmakla meşgul olduğunda yazdığınız kod daha fazla zaman alıyor gibi görünür.


Alternatif bir yöntem olarak aşağıdaki kodu timings.py olarak site-packages klasörüne yerleştirebilirsiniz. Böylece import timing ile daha sonra çağırabilirsiniz. Bu kod programı durdurmak için Ctrl-C tuşuna bastığınızda da çalışan temiz bir çözüm sunar.

Python 2

import atexit
from time import clock

def secondsToStr(t):
    return "%d:%02d:%02d.%03d" % \
        reduce(lambda ll,b : divmod(ll[0],b) + ll[1:],
            [(t*1000,),1000,60,60])

line = "="*40
def log(s, elapsed=None):
    print line
    print secondsToStr(clock()), '-', s
    if elapsed:
        print "Elapsed time:", elapsed
    print line
    print

def endlog():
    end = clock()
    elapsed = end-start
    log("End Program", secondsToStr(elapsed))

def now():
    return secondsToStr(clock())

start = clock()
atexit.register(endlog)
log("Start Program")

Python 3

import atexit
from time import time, strftime, localtime
from datetime import timedelta

def secondsToStr(elapsed=None):
    if elapsed is None:
        return strftime("%Y-%m-%d %H:%M:%S", localtime())
    else:
        return str(timedelta(seconds=elapsed))

def log(s, elapsed=None):
    line = "="*40
    print(line)
    print(secondsToStr(), '-', s)
    if elapsed:
        print("Elapsed time:", elapsed)
    print(line)
    print()

def endlog():
    end = time()
    elapsed = end-start
    log("End Program", secondsToStr(elapsed))

start = time()
atexit.register(endlog)
log("Start Program")

Bu yazı topluluk tarafından oluşturuldu. Lisans bilgisine bakabilirsiniz. Yanlış veya eksik bilgileri düzenlemek için github üzerinden katkıda bulunabilirsiniz.

Kategoriler: Yazı, Python

Okumaya devam et!

Python’da bir klasörün var olup olmadığı nasıl bulunur?

Dosya veya dizin olup olmadığını umursamıyorsanız, os.

Python’da Kullanıcı Girdisi

Etkileşimli girdi Kullanıcıdan girdi almak için input metodu kullanılır (not: Python 2.

Python101 – Dosya İşlemleri

Dosya kimliği Yine bir örnekle başlayalım # dosyaya yaz with open("test.

Yorum Gönderin

E-posta hesabınız yayımlanmayacak.

koddla
Tema Mundana by WowThemes.net.