Respuesta lentísima de SimpleXMLRPCServer en windows xp
Sio2
aussiliar en online.fr
Mie Dic 16 19:37:49 CET 2009
¡Vaya! Me acabo de dar cuenta que estaba enviando mis respuestas sólo a
Oswaldo. Aquí va a la lista:
> He modificado el cliente y el servidor para comprobar los tiempos totales
> de ejecución y los tiempos de la funcion en el servidor. Los resultados
> que obtengo en un blucle de 10 llamadas son estos:
Antes de nada, infinitas gracias, Oswaldo, por perder el tiempo. Mandé
(o creí mandar) un mensaje a la lista, después de haber hecho yo una
prueba en otra máquina windows real distinta a la que había probado el
jueves. Pero se ve que no llegó.
El caso es que el fin de semana, mientras veía si alguien me podía
arrojar luz o no, empecé a crear una pequeña interfaz web para poder
consultar la aplicación. Cuando fui a probar en windows esta interfaz,
volví a obtener los mismos retardos que con la interfaz XMLRPC. Lógico,
porque ambos servidores tienen una misma base común. O eso supongo.
El lunes probé en una máquina windows real y en ella no había retardos.
Pero entre hoy y ayer he probado un simple servidor web (en vez del
servidor XMLRPC, porque no necesito crear ningún cliente para testearlo)
en cuatro máquinas y en todas se ha producido el retardo. Tres eran
portátiles (y uno en vez de windows xp tenía windows 7) y el otro un
equipo de escritorio. En este último los retardos eran de unos 3
segundos, y en uno de los portátiles (que además probé directamente a
conectarlo al cliente con un cable cruzado) el retardo llegaba a los 16
segundos. Normalmente he probado el .exe que me generaba el py2exe en mi
máquina virtual windows (que muestra retardos), pero no creo que influya
porque en uno de los ordenadores instalé python y corrí el código
fuente; y en el único windows que me ha funcionado correctamente,
ejecuté el .exe.
No tengo ni idea de los que pasa, pero me escama que me pase con tantos
windows (sólo he logrado encontrar uno en que funcione bien), que esté
probando con servidores pelados sin ninguna complicación y, sobre todo,
que no haya encontrado quejas de nadie en internet (señal de que sólo me
pasa a mí).
El miniservidor web que he estado usado es este:
---8<----
from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
import sys
try:
host=sys.argv[1]
except IndexError:
host=''
class Handler(BaseHTTPRequestHandler):
def do_GET(self):
self.send_response(200)
self.send_header('Content-type','text/plain')
self.end_headers()
self.wfile.write('Respuesta de texto')
server = HTTPServer((host, 9080),Handler)
try:
print 'Use Control-C para salir'
server.serve_forever()
except KeyboardInterrupt:
print 'Saliendo'
--->8----
Y lo he estado testeando con wget en la máquina cliente:
$ time wget -O - --quiet http://<ip_del_servidor>:9080
Resulta muy frustrante, porque me parece que voy a tener que tirar la
aplicación a la basura. Y la tenía casi terminada. Desgraciadamente en
linux no puede funcionar.
--
Todos los hombres que no tienen nada importante que decir
hablan a gritos.
--- Enrique Jardiel Poncela ---
_______________________________________________
Lista de correo Python-es
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes
Más información sobre la lista de distribución Python-es