我如何计算这个程序在Python中执行了多少次?

2024-09-29 00:20:11 发布

您现在位置:Python中文网/ 问答频道 /正文

    from itertools import permutations
    import random
    import pprint
    import timeit

    start_time = timeit.default_timer()
    count = 0
    def gird(board_size):

        print ("\n".join('# ' * inrange + 'Q ' + '# ' * (8-inrange-1)\

    for inrange in board_size) + "\n\n= = new board  \n")
    count+=1
    coloms  = range(8)
    for board_size in permutations(coloms):
        if 8 == len(set(board_size[inrange]+inrange for inrange in coloms)):
            if 8 == len(set(board_size[inrange]-inrange for inrange in coloms)):
                gird(board_size)


                elapsed = timeit.default_timer() - start_time
                print(elapsed)
                print(count)

我想看看这段代码运行了多少次。我必须衡量搜索成本(迭代次数,直到达到最小值)和已解决问题的百分比。这是一个8皇后问题


Tags: inimportboarddefaultforsizetimecount
1条回答
网友
1楼 · 发布于 2024-09-29 00:20:11

how can i count how many time program has been executed in python

我所能想到的满足您所描述的问题的唯一方法,而不是运行函数N次,是这样的:

示例:

from __future__ import print_function


import atexit
from os import path
from json import dumps, loads


def read_counter():
    return loads(open("counter.json", "r").read()) + 1 if path.exists("counter.json") else 0


def write_counter():
    with open("counter.json", "w") as f:
        f.write(dumps(counter))


counter = read_counter()
atexit.register(write_counter)


def main():
    print("I have been run {} times".format(counter))


if __name__ == "__main__":
    main()

样本运行:

$ python foo.py
I have been run 1 times
$ python foo.py
I have been run 2 times
$ python foo.py
I have been run 3 times

然而,我必须指出,这不是一个很好的方法来“衡量”一个程序或你所写函数的性能。您应该查看hotshottimeit之类的内容,或者在内部多次运行您的函数并衡量“正确的事情”

相关问题 更多 >