簡體   English   中英

如何使用PyTest / tox測試速度?

[英]How do I test for speed with PyTest / tox?

對於測試機器學習算法/存儲庫,我認為很重要的三件事:

  1. 它會崩潰嗎
  2. 是否具有最低的測試精度
  3. 夠快嗎

雖然(1)也許是(2)是標准單元測試,但我不太確定如何處理(3)。 我可以用pytest / tox測試嗎?

我找到了pytest-benchmark ,但是我將如何針對例如lidtk呢?

用偽代碼,我要執行以下操作:

def classifier_predict(input_features):
    # do something smart, but maybe too time-consuming
    return result

def input_generator():
    # Generate something random which classifier_predict
    # can work on - don't measure this time!
    return input_features

class Agents(unittest.TestCase):
    def test_classifier_predict():
        self.assertMaxTime(classifier_predict,
                           input_generator,
                           max_time_in_ms=100)

手工的解決方案

這是一個手工制作的解決方案的偽代碼:

def classifier_predict(input_features):
    # do something smart, but maybe too time-consuming
    return result

def input_generator():
    # Generate something random which classifier_predict
    # can work on - don't measure this time!
    return input_features

class Agents(unittest.TestCase):
    def test_classifier_predict():
        nb_tests = 1000
        total_time = 0.0
        for _ in range(nb_tests):
            input_ = input_generator()
            t0 = time.time()
            classifier_predict(input_)
            t1 = time.time()
            total_time += t1 - t0
        self.assertLessEqual(total_time / nb_tests, 100)

缺點

  • 沒有好的圖形(例如pytest-benchmark似乎會生成)
  • 通常,由於硬件不同以及外部工作負荷不同,硬限制可能很困難

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM