Bien pues parece que la rapidez del XML-RPC esta a discusion, hice una prueba con tablas hash:
Nota: El tiempo de ejecucion esta tomado de mi makina, que es una maquina rapida.
1) Ruby hace la peticion a Java para crear una tabla hash con capacidad inicial para 20 entradas.
2) Java crea la tabla hash con 20 entradas y en cada una de estas entradas crea un vector con 20 elementos.
3) Estamos hablando de una "tabla bidimensional de 20 X 20" elementos.
ConclusiOn: Ruby obtiene la respuesta en el mismo segundo, o sea que se tarda menos de un segundo.
4) Ahora cunado la prueba es una tabla de 30 X 30 elementos.
ConclusiOn: Ruby obtiene la respuesta es tambien menor a un segndo.
5) 40X40 Igual que el anterior.
6) 50 X 50
ConclusiOn: Ruby obtiene la respuesta UN SEGUNDO DESPUES.
7) 60X60 Igual que el anterior.
8) 70 X 70 Igual que el antrior
9) 80 X 80
ConclusiOn: Ruby obtiene la respuesta DOS SEGUNDOS DESPUES DE QUE HACE LA PETICION.
10) 90 X 90 Igual que el anterior.
Detalle:Ruby envia la peticiOn a las 19:20:30.
Java recibe la peticiOn a las 19:20:30.
Java hace la estructura de 90X90, tarda MENOS de un segundo...
Java envia la respuesta a las 19:20:30
Ruby recibe la
peticion a las 19:20:32 DOS SEGUNDOS DESPUES.
O SEA EN ESCRIBIR Y LEER EL XML SE LLEVO DOS SEGUNDOS.
11) 100 X 100 : Diez mil objetos.
ConclusiOn: Ruby obtiene la respuesta TRES SEGUNDOS DESPUES DE QUE HACE LA PETICION.
Detalle: Ruby envia la peticiOn a las 19:11:33.
Java recibe la peticiOn a las 19:11:33.
Java hace la estructura de 100X100, tarda un segundo...
Java envia la respuesta a las 19:11:34
Ruby recibe la
peticion a las 19: 11:36 DOS SEGUNDOS DESPUES.
O SEA EN ESCRIBIR Y LEER EL XML SE LLEVO DOS SEGUNDOS.
Conclusion si tenemos estructuras muy grandes que escupa Java, nos podemos llevar un rato en
recibir el xml.
Les mando los archivos para que los revisen. Se podrian hacer mas pruebas, mas finas.
El archivo que hace la chamba de construir la estructura se llama AreaHandler.java.
Veanlo para que se den una idea de la estructura!
La salida del ruby la guarde en el archivo ruby.