summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Brewer <fumanchu@aminus.org>2006-12-23 22:09:29 +0000
committerRobert Brewer <fumanchu@aminus.org>2006-12-23 22:09:29 +0000
commite47ba575886ed20b762c64cf71144eec8d11213c (patch)
tree175ce8b616eed66aea695a533fb85884110167a0
parenta622897a21c6803220df431506df0e68be6bb3b6 (diff)
downloadcherrypy-git-e47ba575886ed20b762c64cf71144eec8d11213c.tar.gz
A couple more speed tweaks.
-rw-r--r--cherrypy/_cplogging.py10
-rw-r--r--cherrypy/test/benchmark.py9
-rw-r--r--cherrypy/wsgiserver.py5
3 files changed, 13 insertions, 11 deletions
diff --git a/cherrypy/_cplogging.py b/cherrypy/_cplogging.py
index 135c83b4..c1bb2fff 100644
--- a/cherrypy/_cplogging.py
+++ b/cherrypy/_cplogging.py
@@ -45,17 +45,19 @@ class LogManager(object):
def access(self):
"""Write to the access log."""
request = cherrypy.request
+ remote = request.remote
response = cherrypy.response
+ outheaders = response.headers
tmpl = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
- s = tmpl % {'h': request.remote.name or request.remote.ip,
+ s = tmpl % {'h': remote.name or remote.ip,
'l': '-',
'u': getattr(request, "login", None) or "-",
't': self.time(),
'r': request.request_line,
's': response.status.split(" ", 1)[0],
- 'b': response.headers.get('Content-Length', '') or "-",
- 'f': request.headers.get('referer', ''),
- 'a': request.headers.get('user-agent', ''),
+ 'b': outheaders.get('Content-Length', '') or "-",
+ 'f': outheaders.get('referer', ''),
+ 'a': outheaders.get('user-agent', ''),
}
try:
self.access_log.log(logging.INFO, s)
diff --git a/cherrypy/test/benchmark.py b/cherrypy/test/benchmark.py
index 658459d9..2f5681c8 100644
--- a/cherrypy/test/benchmark.py
+++ b/cherrypy/test/benchmark.py
@@ -85,12 +85,13 @@ cherrypy.config.update({
'server.max_request_header_size': 0,
'server.max_request_body_size': 0,
'engine.deadlock_poll_freq': 0,
- # Cheat mode on ;)
- 'tools.log_tracebacks.on': False,
- 'tools.log_headers.on': False,
- 'tools.trailing_slash.on': False,
})
+# Cheat mode on ;)
+del cherrypy.config['tools.log_tracebacks.on']
+del cherrypy.config['tools.log_headers.on']
+del cherrypy.config['tools.trailing_slash.on']
+
appconf = {
'/static': {
'tools.staticdir.on': True,
diff --git a/cherrypy/wsgiserver.py b/cherrypy/wsgiserver.py
index adce3f8a..1442b17e 100644
--- a/cherrypy/wsgiserver.py
+++ b/cherrypy/wsgiserver.py
@@ -417,7 +417,7 @@ class HTTPRequest(object):
def send_headers(self):
"""Assert, process, and send the HTTP response message-headers."""
- hkeys = [key.lower() for (key, value) in self.outheaders]
+ hkeys = [key.lower() for key, value in self.outheaders]
status = int(self.status[:3])
if self.response_protocol == 'HTTP/1.1':
@@ -448,8 +448,7 @@ class HTTPRequest(object):
buf = [server.protocol, " ", self.status, "\r\n"]
try:
- for k, v in self.outheaders:
- buf.append(k + ": " + v + "\r\n")
+ buf += [k + ": " + v + "\r\n" for k, v in self.outheaders]
except TypeError:
if not isinstance(k, str):
raise TypeError("WSGI response header key %r is not a string.")