相关疑难解决方法(0)

测量Python中经过的时间?

我想要的是开始在我的代码中的某个地方计算时间,然后获得通过的时间,以测量执行少量功能所花费的时间.我认为我使用的是timeit模块错误,但文档对我来说只是让人困惑.

import timeit

start = timeit.timeit()
print("hello")
end = timeit.timeit()
print(end - start)
Run Code Online (Sandbox Code Playgroud)

python performance timeit measure

1031
推荐指数
32
解决办法
116万
查看次数

我如何获得Python程序的执行时间?

我在Python中有一个命令行程序需要一段时间才能完成.我想知道完成跑步所需的确切时间.

我看过这个timeit模块,但它似乎只适用于小代码片段.我想要整个计划的时间.

python time

831
推荐指数
30
解决办法
94万
查看次数

使用Time模块测量经过的时间

使用python中的Time模块可以测量经过的时间吗?如果是这样,我该怎么做?

我需要这样做,以便如果光标已在窗口小部件中持续一段时间,则会发生事件.

python time elapsed

302
推荐指数
8
解决办法
38万
查看次数

我如何逐行分析Python代码?

我一直在使用cProfile来分析我的代码,它一直很好用.我还使用gprof2dot.py来显示结果(使其更清晰).

但是,cProfile(以及到目前为止我见过的大多数其他Python分析器)似乎只在函数调用级别进行分析.当从不同的地方调用某些函数时,这会引起混淆 - 我不知道呼叫#1或呼叫#2是否占用了大部分时间.当所讨论的函数深度为六级时,这会变得更糟,从其他七个地方调用.

如何进行逐行分析?

而不是这个:

function #12, total time: 2.0s
Run Code Online (Sandbox Code Playgroud)

我想看到这样的事情:

function #12 (called from somefile.py:102) 0.5s
function #12 (called from main.py:12) 1.5s
Run Code Online (Sandbox Code Playgroud)

cProfile确实显示了总共有多少时间"转移"到父级,但是当你有一堆层和互连的调用时,这种连接又会丢失.

理想情况下,我希望有一个GUI来解析数据,然后向我显示我的源文件,每个行的总时间.像这样的东西:

main.py:

a = 1 # 0.0s
result = func(a) # 0.4s
c = 1000 # 0.0s
result = func(c) # 5.0s
Run Code Online (Sandbox Code Playgroud)

然后我就可以点击第二个"func(c)"调用来查看该调用中占用的时间,与"func(a)"调用分开.

那有意义吗?是否有任何分析库收集此类信息?我错过了一些很棒的工具吗?

python profiling line-by-line

104
推荐指数
4
解决办法
5万
查看次数

分析C++编译过程

我倾向于编写相当大的模板化标头C++库,我的用户通常会抱怨编译时间.在想到这件事之后,我突然意识到我不知道时间会在哪里.是否有一些简单的方法来使用常见的编译器(例如g ++,icc和xlC)来分析C++编译过程?例如,是否可以了解在C++编译的每个阶段花费了多少时间?

c++ profiling compilation

75
推荐指数
5
解决办法
1万
查看次数

有没有简单的方法来基准python脚本?

通常我使用shell命令time.我的目的是测试数据是小型,中型,大型还是非常大的集合,多少时间和内存使用量.

用于linux或python的任何工具都可以做到这一点?

python unix shell benchmarking

71
推荐指数
8
解决办法
5万
查看次数

如何加快读取多个文件并将数据放入数据帧?

我有许多文本文件,比如50,我需要读入一个庞大的数据帧.目前,我正在使用以下步骤.

  1. 阅读每个文件并检查标签是什么.我需要的信息通常包含在前几行中.对于文件的其余部分,只重复相同的标签,每次都会列出不同类型的数据.
  2. 使用这些标签创建数据框.
  3. 再次读取文件并使用值填充数据框.
  4. 将该数据帧与主数据帧连接起来.

这适用于100 KB大小的文件 - 几分钟,但在50 MB时,它只需要几个小时,并且不实用.

如何优化我的代码?特别是 -

  1. 如何识别哪些功能占用的时间最多,哪些需要优化?是文件的读物吗?是写入数据帧吗?我的节目在哪里花费时间?
  2. 我应该考虑多线程还是多处理?
  3. 我可以改进算法吗?
    • 或许可以将整个文件一次性读入列表,而不是逐行读取,
    • 以块/整个文件解析数据,而不是逐行解析,
    • 以块/一次为单位将数据分配给数据帧,而不是逐行分配.
  4. 还有什么我可以做的让我的代码执行得更快吗?

这是一个示例代码.我自己的代码有点复杂,因为文本文件更复杂,因此我必须使用大约10个正则表达式和多个while循环来读取数据并将其分配到正确数组中的正确位置.为了保持MWE的简单,我没有在MWE的输入文件中使用重复标签,所以我希望我无缘无故地读取文件两次.我希望这是有道理的!

import re
import pandas as pd

df = pd.DataFrame()
paths = ["../gitignore/test1.txt", "../gitignore/test2.txt"]
reg_ex = re.compile('^(.+) (.+)\n')
# read all files to determine what indices are available
for path in paths:
    file_obj = open(path, 'r')
    print file_obj.readlines()

['a 1\n', 'b 2\n', 'end']
['c 3\n', 'd 4\n', 'end']

indices = []
for path in paths:
    index = []
    with open(path, 'r') …
Run Code Online (Sandbox Code Playgroud)

python regex performance parsing pandas

39
推荐指数
3
解决办法
7425
查看次数

使用cProfile在Python中分析类的方法?

我想使用cProfile在Python中分析函数的方法.我尝试了以下方法:

import cProfile as profile

# Inside the class method...
profile.run("self.myMethod()", "output_file")
Run Code Online (Sandbox Code Playgroud)

但它不起作用.如何用"run"调用self.method?

python profiler cprofile

34
推荐指数
3
解决办法
2万
查看次数

如何使Python Scrabble文字查找器更快?

我没有真正需要改进它,它只是为了好玩.现在它在大约200K字的列表上花了大约一秒钟.

我已经尝试过尽可能地优化它(使用生成器代替列表推导产生了很大的不同),并且我已经没有想法了.

你有什么?

#!/usr/bin/env python
# let's cheat at scrabble

def count_letters(word):
  count = {} 
  for letter in word:
    if letter not in count: count[letter] = 0
    count[letter] += 1 
  return count 

def spellable(word, rack):
    word_count = count_letters(word)
    rack_count  = count_letters(rack)
    return all( [word_count[letter] <= rack_count[letter] for letter in word] )  

score = {"a": 1, "c": 3, "b": 3, "e": 1, "d": 2, "g": 2, 
         "f": 4, "i": 1, "h": 4, "k": 5, "j": 8, "m": 3, 
         "l": 1, "o": …
Run Code Online (Sandbox Code Playgroud)

python optimization

23
推荐指数
1
解决办法
2万
查看次数

是否有python的统计分析器?如果没有,我怎么能写一个呢?

我需要运行一个python脚本一段随机的时间,暂停它,得到一个堆栈回溯,并取消它.我已经用Google搜索了一些方法来做到这一点,但我认为没有明显的解决方案.

python profile stochastic

17
推荐指数
2
解决办法
2398
查看次数