[CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

classic Classic list List threaded Threaded
22 messages Options
12
Reply | Threaded
Open this post in threaded view
|

[CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

姜源
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Kula
我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Shell Xu
In reply to this post by 姜源

你试试多进程加压。

from miui

在 2011-12-27 凌晨5:46,"姜源" <[hidden email]>写道:
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

lee Alexander
In reply to this post by Kula
print影响了结果,只在完成后print你会发现性能立马就好了,观察行为的本身会影响观察的结果

在 2011年12月27日 上午6:33,Kula <[hidden email]>写道:
我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

zhao shichen
print 又不在循环里面,不影响什么性能的。

我测试一般在1w左右,10w是怎么出来的?

在 2011年12月27日 上午9:18,lee Alexander <[hidden email]>写道:
print影响了结果,只在完成后print你会发现性能立马就好了,观察行为的本身会影响观察的结果

在 2011年12月27日 上午6:33,Kula <[hidden email]>写道:

我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
呆痴木讷,君子四德

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

sj l
range(10000)也会影响性能,xrange(10000)吧

2011/12/27 zhao shichen <[hidden email]>
print 又不在循环里面,不影响什么性能的。

我测试一般在1w左右,10w是怎么出来的?

在 2011年12月27日 上午9:18,lee Alexander <[hidden email]>写道:

print影响了结果,只在完成后print你会发现性能立马就好了,观察行为的本身会影响观察的结果

在 2011年12月27日 上午6:33,Kula <[hidden email]>写道:

我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
呆痴木讷,君子四德


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

sj l
如shell xu,多进程加压,或者多协程加压。for range循环的话,一个操作完成了,另一个才进行,资源利用不充分呀

2011/12/27 sj l <[hidden email]>
range(10000)也会影响性能,xrange(10000)吧


2011/12/27 zhao shichen <[hidden email]>
print 又不在循环里面,不影响什么性能的。

我测试一般在1w左右,10w是怎么出来的?

在 2011年12月27日 上午9:18,lee Alexander <[hidden email]>写道:

print影响了结果,只在完成后print你会发现性能立马就好了,观察行为的本身会影响观察的结果

在 2011年12月27日 上午6:33,Kula <[hidden email]>写道:

我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
呆痴木讷,君子四德


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

dean forever
我有次测试性能很差 最后发现是程序和服务器通信有问题,使用的是服务器的外网地址,有限速的
你看看是不是网络问题 


在 2011年12月27日 上午10:20,sj l <[hidden email]>写道:
如shell xu,多进程加压,或者多协程加压。for range循环的话,一个操作完成了,另一个才进行,资源利用不充分呀


2011/12/27 sj l <[hidden email]>
range(10000)也会影响性能,xrange(10000)吧


2011/12/27 zhao shichen <[hidden email]>
print 又不在循环里面,不影响什么性能的。

我测试一般在1w左右,10w是怎么出来的?

在 2011年12月27日 上午9:18,lee Alexander <[hidden email]>写道:

print影响了结果,只在完成后print你会发现性能立马就好了,观察行为的本身会影响观察的结果

在 2011年12月27日 上午6:33,Kula <[hidden email]>写道:

我觉得是windows的问题。

mac air下测试的结果大概是1w req/s 左右

2011/12/27 姜源 <[hidden email]>
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?
--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
呆痴木讷,君子四德


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

pansz-2
In reply to this post by sj l
10000 这种数量级, xrange 肯定性能更差,建议用 range:
一般而言,除非你使用超大的循环,xrange 带来的额外的函数调用开销远远大于 range 创建数组的开销。

/tmp$ time python range.py
19028097

real    0m0.094s
user    0m0.031s
sys     0m0.030s
/tmp$ time python xrange.py
19028097

real    0m0.138s
user    0m0.031s
sys     0m0.062s
/tmp$ cat range.py
#!/usr/bin/env python
# coding: utf-8

def main():
    j = 1
    for i in range(10000):
        if not i:
            continue
        if i % 2:
            j = j * i
        elif j > i:
            j = j / i
        else:
            j = j + i
    print j

if __name__ == "__main__":
    main()


测试环境:python2.6.5

2011/12/27 sj l <[hidden email]>
range(10000)也会影响性能,xrange(10000)吧


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Xunzhen Quan
2011/12/27 pansz <[hidden email]>
10000 这种数量级, xrange 肯定性能更差,建议用 range:
一般而言,除非你使用超大的循环,xrange 带来的额外的函数调用开销远远大于 range 创建数组的开销。

我跟你的测试结果不太一样,我的测试结果如下:
0: 6.83712 6.63756
1: 0.93906 1.06875
2: 0.35378 0.49643
3: 0.33626 0.32860
4: 0.34594 0.28472
5: 0.35994 0.28010
6: 0.46319 0.27717

第一个数字表示 n 为10的多少次方,每项测试跑 10^7/n 次计算总时间,这是十轮的平均时间
从结果看,在100这个量级上 xrange 是慢于 range 的,但是到了1000时就有微弱的优势,到10000以后就彻底超过 range 了

测试代码和测试结果大表:http://pastebin.com/p9xWFCBb
测试环境 Python 2.7.1

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

[CPyUG] Re: 为什么我测试出来的Redis性能这么差?redis-py

姜源
In reply to this post by 姜源
我用的是本地网络,换到windows2003 下测试有5K/S,希望部署到linux上能给我惊喜吧。


在 2011年12月27日 上午5:45,姜源 <[hidden email]>写道:
环境python2.7 redis-py windows7 32bit i5 4G
测试的代码:
from redis import Redis
from datetime import datetime
redis=Redis(host="localhost")
a=datetime.now()
for i in range(10000):
    redis.set("UDP_CMD"+str(i),i)
b=datetime.now()
print b-a
a=datetime.now()
for i in range(10000):
    redis.get("UDP_CMD"+str(i))
b=datetime.now()
print b-a

测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

[CPyUG] Re: 为什么我测试出来的Redis性能这么差?redis-py

我欲乘风去
In reply to this post by 姜源
win测试有意义?刚我mac pro测,1.3-1.5 w/s无压力。

On Dec 27, 5:45 am, 姜源 <[hidden email]> wrote:

> 环境python2.7 redis-py windows7 32bit i5 4G
> 测试的代码:
> from redis import Redis
> from datetime import datetime
> redis=Redis(host="localhost")
> a=datetime.now()
> for i in range(10000):
>     redis.set("UDP_CMD"+str(i),i)
> b=datetime.now()
> print b-a
> a=datetime.now()
> for i in range(10000):
>     redis.get("UDP_CMD"+str(i))
> b=datetime.now()
> print b-a
>
> 测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
> 那位达人来指点下。是我写错了还是windows的问题?

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Leo Jay
In reply to this post by 姜源
2011/12/27 姜源 <[hidden email]>:

> 环境python2.7 redis-py windows7 32bit i5 4G
> 测试的代码:
> from redis import Redis
> from datetime import datetime
> redis=Redis(host="localhost")
> a=datetime.now()
> for i in range(10000):
>     redis.set("UDP_CMD"+str(i),i)
> b=datetime.now()
> print b-a
> a=datetime.now()
> for i in range(10000):
>     redis.get("UDP_CMD"+str(i))
> b=datetime.now()
> print b-a
>
> 测试的结果是,本地运行的redis服务写最简单的整数,读写1W竟然要4秒时间,每秒才2.5K,我崩溃了。为什么别人能测试出10W/s呢?
> 那位达人来指点下。是我写错了还是windows的问题?
>

我把你的程序改了一下:
from time import time

def test(n):
    from redis import Redis
    redis=Redis(host="localhost")
    a=time()
    for i in xrange(n):
        redis.set("UDP_CMD"+str(i),i)
    t1 = time()-a
    a=time()
    for i in xrange(n):
        redis.get("UDP_CMD"+str(i))
    t2 = time() - a
    return t1, t2

def main():
    from multiprocessing import Pool
    n = 6
    p = Pool(n)
    a = time()
    for t1,t2 in p.map(test, [100000]*n):
        print '%.2f, %.2f' % (t1, t2)
    t = time() - a
    print 'total time: %.2fs' % t, ' speed: %.2f/s' % (100000.0 * n / t)

if __name__ == '__main__':
    main()


我在ubuntu 11.04下测试的结果:
当n为1时,大概为10k/s,当n为6时(6个进程同时操作),大概为48k/s

我的CPU为i7 860

--
Best Regards,
Leo Jay

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

姜源
In reply to this post by Xunzhen Quan
随便找台台式机,装了个ubuntu,轻轻松松跑到1.2w/s。差距真大啊。

在 2011年12月27日 下午12:22,Xunzhen Quan <[hidden email]>写道:
2011/12/27 pansz <[hidden email]>
10000 这种数量级, xrange 肯定性能更差,建议用 range:
一般而言,除非你使用超大的循环,xrange 带来的额外的函数调用开销远远大于 range 创建数组的开销。

我跟你的测试结果不太一样,我的测试结果如下:
0: 6.83712 6.63756
1: 0.93906 1.06875
2: 0.35378 0.49643
3: 0.33626 0.32860
4: 0.34594 0.28472
5: 0.35994 0.28010
6: 0.46319 0.27717

第一个数字表示 n 为10的多少次方,每项测试跑 10^7/n 次计算总时间,这是十轮的平均时间
从结果看,在100这个量级上 xrange 是慢于 range 的,但是到了1000时就有微弱的优势,到10000以后就彻底超过 range 了

测试代码和测试结果大表:http://pastebin.com/p9xWFCBb
测试环境 Python 2.7.1

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Leo Jay
2011/12/27 姜源 <[hidden email]>
>
> 随便找台台式机,装了个ubuntu,轻轻松松跑到1.2w/s。差距真大啊。
>

这种c语言写的开源无GUI的软件,十有八九是为*nix平台做的。
windows能跑就阿弥陀佛了,要求不能太高。

--
Best Regards,
Leo Jay

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

Xunzhen Quan
In reply to this post by 姜源
2011/12/27 姜源 <[hidden email]>
随便找台台式机,装了个ubuntu,轻轻松松跑到1.2w/s。差距真大啊。

刚刚在 Mac 上试了一下,单进程只有 6.5k/s,4进程大约1.6w/s,6进程2.1w/s,8进程可以达到 2.2w/s


--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] 为什么我测试出来的Redis性能这么差?redis-py

pansz-2
In reply to this post by Xunzhen Quan
2011/12/27 Xunzhen Quan <[hidden email]>:
> 我跟你的测试结果不太一样,我的测试结果如下:

恩,Linux 下是会这样,Windows 下 xrange 开销大些。

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
jjx
Reply | Threaded
Open this post in threaded view
|

[CPyUG] Re: 为什么我测试出来的Redis性能这么差?redis-py

jjx
In reply to this post by Leo Jay
这个不是有消息说ms提交补丁 给作者给拒绝了吗? 觉的作者有点那个, 没有nodejs开放

On Dec 27, 1:56 pm, Leo Jay <[hidden email]> wrote:

> 2011/12/27 姜源 <[hidden email]>
>
>
>
> > 随便找台台式机,装了个ubuntu,轻轻松松跑到1.2w/s。差距真大啊。
>
> 这种c语言写的开源无GUI的软件,十有八九是为*nix平台做的。
> windows能跑就阿弥陀佛了,要求不能太高。
>
> --
> Best Regards,
> Leo Jay

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Re: 为什么我测试出来的Redis性能这么差?redis-py

Leo Jay
2011/12/27 jjx <[hidden email]>:
> 这个不是有消息说ms提交补丁 给作者给拒绝了吗? 觉的作者有点那个, 没有nodejs开放
>

要我我也不接受。要是接受了就表明官方支持windows,那以后就要维护多个平台了,这工作量不是增加一点两点啊。
你提交个补丁就跑了,以后有问题找谁去啊。尤其在作者只需要*nix环境的情况下,平白增加工作量没意义啊。
谁需要windows,自己fork一个自己维护就是了。

--
Best Regards,
Leo Jay

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
Reply | Threaded
Open this post in threaded view
|

Re: [CPyUG] Re: 为什么我测试出来的Redis性能这么差?redis-py

zhao shichen
没错,作者连libevent这样的库都没用;在这种情况下接受这种补丁,在技术上基本等于找麻烦

在 2011年12月27日 下午4:55,Leo Jay <[hidden email]>写道:
2011/12/27 jjx <[hidden email]>:
> 这个不是有消息说ms提交补丁 给作者给拒绝了吗? 觉的作者有点那个, 没有nodejs开放
>

要我我也不接受。要是接受了就表明官方支持windows,那以后就要维护多个平台了,这工作量不是增加一点两点啊。
你提交个补丁就跑了,以后有问题找谁去啊。尤其在作者只需要*nix环境的情况下,平白增加工作量没意义啊。
谁需要windows,自己fork一个自己维护就是了。

--
Best Regards,
Leo Jay

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html



--
呆痴木讷,君子四德

--
来自: python-cn`CPyUG`华蟒用户组(中文Python技术邮件列表)
规则: http://code.google.com/p/cpyug/wiki/PythonCn
发言: [hidden email]
退订: [hidden email] (向此发空信即退!)
详情: http://code.google.com/p/cpyug/wiki/PythonCn
严正: 理解列表! 智慧提问! http://wiki.woodpecker.org.cn/moin/AskForHelp
强烈: 建议使用技巧: 如何有效地报告Bug http://www.chiark.greenend.org.uk/%7Esgtatham/bugs-cn.html
12