我正在使用django和apache以及mod_wsgi和PostgreSQL(都在同一主机上),我需要处理很多简单的动态页面请求(每秒数百个).我遇到的问题是瓶颈是django没有持久的数据库连接并且在每个请求上重新连接(需要接近5ms).在进行基准测试时,我得到了持久连接,我可以处理接近500 r/s而没有我只得到50 r/s.
有人有什么建议吗?如何修改django以使用持久连接?或者加速从python到DB的连接
提前致谢.
我想在python中生成一些字母数字密码.一些可能的方法是:
import string
from random import sample, choice
chars = string.letters + string.digits
length = 8
''.join(sample(chars,length)) # way 1
''.join([choice(chars) for i in range(length)]) # way 2
Run Code Online (Sandbox Code Playgroud)
但我不喜欢两者,因为:
i变量未使用,我找不到如何避免这种情况的好方法那么,还有其他好的选择吗?
PS所以这里我们正在进行一些timeit100000次迭代的测试:
''.join(sample(chars,length)) # way 1; 2.5 seconds
''.join([choice(chars) for i in range(length)]) # way 2; 1.8 seconds (optimizer helps?)
''.join(choice(chars) for _ in range(length)) # way 3; 1.8 seconds
''.join(choice(chars) for _ in xrange(length)) # way 4; 1.73 seconds
''.join(map(lambda x: …Run Code Online (Sandbox Code Playgroud) 我有一个python应用程序打开一个数据库连接,可以在线挂起一个小时,但有时数据库服务器重新启动,而python仍然有连接它将无法正常工作OperationalError.
所以我正在寻找任何可靠的方法来"ping"数据库,并知道连接是活的.我检查了一个psycopg2文档,但找不到那样的东西.当然我可以发出一些简单的SQL语句SELECT 1并捕获异常,但我希望有一个本机方法,比如PHP pg_connection_status
谢谢.
我想为Django管理界面和应用程序本身提供不同的会话,以便能够以管理员身份登录管理界面并作为应用程序的标准用户.
任何想法如何实现?
PS当然,我可以使用2种不同的网络浏览器实例,还有其他任何方式吗?
我正在寻找删除python dict中某些键的最快/最有效的方法
这里有一些选择
for k in somedict.keys():
if k.startswith("someprefix"):
del somedict[k]
Run Code Online (Sandbox Code Playgroud)
要么
dict((k, v) for (k, v) in somedict.iteritems() if not k.startswith('someprefix'))
Run Code Online (Sandbox Code Playgroud)
逻辑上第一个片段在较小的dicts上应该更快,它不会创建dict的副本但会创建所有键的列表,但是双重查找和dict重建是耗时的.虽然第二个在更大的dicts上更快,但需要2倍的内存.我在一些小基准测试中检查了我的假设.
什么更快?
在开发部署在Apache mod_wsgi上的Django应用程序时,我发现在多线程(Python线程; mod_wsgi进程= 1个线程= 8)的情况下,Python将不会使用所有可用的处理器.使用多处理方法(mod_wsgi processes = 8个线程= 1)一切都很好,我可以完全加载我的机器.
所以问题是:这种Python行为是正常的吗?我怀疑它是因为使用少数线程的1进程是默认的mod_wsgi方法.
该系统是:
FreeBSD 7.2 AMD64和Python 2.6.4上的2xIntel Xeon 5XXX系列(8核(16个超线程))
谢谢大家的回答.我们都发现这种行为是正常的,因为GIL.这是一个很好的解释:http: //jessenoller.com/2009/02/01/python-threads-and-the-global-interpreter-lock/ 或stackoverflow GIL讨论:什么是全局解释器锁(GIL)?.
我正在寻找可以用十六进制字母创建的单词,[0-9a-f]+
比如C0FFEE, DEFACED
我们也可以使用lisoz,1=l,i; 5=s; 2=z; 0=o等等.
它可以用于内存寻址或IPv6地址,因此它会很有趣,也更容易记住.
这里有很好的列表:http://www.nsftools.com/tips/HexWords.htm 但我相信我们可以想出一些不存在的东西或发明新词:)
python ×6
django ×3
database ×2
admin ×1
connection ×1
console ×1
conventions ×1
dictionary ×1
filter ×1
fonts ×1
hex ×1
indentation ×1
mod-wsgi ×1
naming ×1
passwords ×1
pep8 ×1
performance ×1
persistent ×1
psycopg2 ×1
session ×1
terminal ×1