javascript

git

java

python

git-remote

c++

github

django

c#

reactjs

variables

var

loops

iteration

std

c++-faq

git-checkout

generator

coroutine

spring-mvc

网络-使用Python请求衡量网站加载时间

我正在尝试构建一个工具来测试我的Internet连接的延迟,更具体地说是网站加载时间。 我想到了将python request模块用于加载部分。

问题是,它没有内置功能来衡量获得完整响应所花费的时间。 为此,我认为我将使用timeit模块。

我不确定的是,如果我像这样运行timeit:

t = timeit.Timer("requests.get('http://www.google.com')", "import requests")

我实际上是在衡量响应到达所花费的时间,还是建立,发送,接收请求等所花费的时间? 我猜我可能会忽略执行时间,因为我正在测试延迟很长的网络(〜700ms)?

有没有更好的方法以编程方式执行此操作?

trans by 2020-08-12T10:06:29Z

python-timeit与计时d

我正在尝试计时一些代码。 首先,我使用了一个定时装饰器:

#!/usr/bin/env python

import time
from itertools import izip
from random import shuffle

def timing_val(func):
    def wrapper(*arg, **kw):
        '''source: http://www.daniweb.com/code/snippet368.html'''
        t1 = time.time()
        res = func(*arg, **kw)
        t2 = time.time()
        return (t2 - t1), res, func.__name__
    return wrapper

@timing_val
def time_izip(alist, n):
    i = iter(alist)
    return [x for x in izip(*[i] * n)]

@timing_val
def time_indexing(alist, n):
    return [alist[i:i + n] for i in range(0, len(alist), n)]

func_list = [locals()[key] for key in locals().keys()
             if callable(locals()[key]) and key.startswith('time')]
shuffle(func_list)  # Shuffle, just in case the order matters

alist = range(1000000)
times = []
for f in func_list:
    times.append(f(alist, 31))

times.sort(key=lambda x: x[0])
for (time, result, func_name) in times:
    print '%s took %0.3fms.' % (func_name, time * 1000.)

产量

% test.py
time_indexing took 73.230ms.
time_izip took 122.057ms.

在这里我使用timeit:

%  python - m timeit - s '' 'alist=range(1000000);[alist[i:i+31] for i in range(0, len(alist), 31)]'
10 loops, best of 3:
    64 msec per loop
% python - m timeit - s 'from itertools import izip' 'alist=range(1000000);i=iter(alist);[x for x in izip(*[i]*31)]'
10 loops, best of 3:
    66.5 msec per loop

使用timeit时,结果实际上是相同的,但是使用定时修饰器时,显示time_indexing的速度比time_izip快。

是什么造成了这种差异?

应该相信这两种方法吗?

如果是这样?

trans by 2019-11-15T00:02:09Z

范围 - 使用Python的timei获取“全局名称'foo'”

我试图找出执行Python语句需要多长时间,所以我在线查看并发现标准库提供了一个名为timeit的模块,其目的是做到这一点:

import timeit

def foo():
    # ... contains code I want to time ...

def dotime():
    t = timeit.Timer("foo()")
    time = t.timeit(1)
    print "took %fs\n" % (time,)

dotime()

但是,这会产生错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in dotime
  File "/usr/local/lib/python2.6/timeit.py", line 193, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
NameError: global name 'foo' is not defined

我还是Python新手,我不完全理解它所有的范围问题,但我不知道为什么这个片段不起作用。 有什么想法吗?

trans by 2019-09-18T09:18:17Z

python - 为什么迭代一个小字符串比一个小列表更慢?

我正在玩timeit并注意到对一个小字符串做一个简单的列表理解比在一个小的单个字符串列表上做同样的操作要花费更长的时间。 任何解释? 这几乎是1.35倍的时间。

>>> from timeit import timeit
>>> timeit("[x for x in 'abc']")
2.0691067844831528
>>> timeit("[x for x in ['a', 'b', 'c']]")
1.5286479570345861

在较低的水平上发生了什么导致这种情况?

trans by 2019-05-26T03:01:22Z

范围 - 使用Python的timei获取“全局名称'foo'”

我试图找出执行Python语句需要多长时间,所以我在线查看并发现标准库提供了一个名为timeit的模块,其目的是做到这一点:

import timeit

def foo():
    # ... contains code I want to time ...

def dotime():
    t = timeit.Timer("foo()")
    time = t.timeit(1)
    print "took %fs\n" % (time,)

dotime()

但是,这会产生错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "<stdin>", line 3, in dotime
  File "/usr/local/lib/python2.6/timeit.py", line 193, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 6, in inner
NameError: global name 'foo' is not defined

我还是Python新手,我不完全理解它所有的范围问题,但我不知道为什么这个片段不起作用。 有什么想法吗?

trans by 2019-04-21T17:36:26Z

performance - 在Python中创建一个空列表

在Python中创建新空列表的最佳方法是什么?

l = [] 

要么

l = list()

我问这个是因为两个原因:

  1. 技术原因,哪个更快。 (创建一个类导致开销?)
  2. 代码可读性 - 哪一个是标准惯例。
trans by 2019-03-18T12:22:15Z

python - 如何使用timeit modu

我理解insertion_sort的概念,但我不知道如何在我的代码中实现它。

我如何比较两个函数,比如insertion_sorttim_sort,以及timeit

trans by 2019-02-18T18:12:11Z

性能 - 测量Python中经过的时间?

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

import timeit

start = timeit.timeit()
print "hello"
end = timeit.timeit()
print end - start
trans by 2018-12-26T04:57:04Z

1 共1页