PDA

Ver la versión completa : Vorton Beta2



chui
28/02/2004, 23:19
Acabo de publicar en la web de Vorton (http://vorton.sourceforge.net) una nueva beta.

Principalmente es el gran 'merge' que estaba haciendo ultimamente con todo el código que tenia:

- Phase2 incluida: dandole a 'Continuar Partida' del menu principal se puede entrar en las fases de mode7 (falta mucho desarrollo aqui).

- XML parser gracias a la ML_Lib de Mortimor. Por cierto MORTI, algo le pasa a la version GP32 que tarda bastante el pre-parsear. ¿Puedes descargarte el fuente e intentar probarlo aislado en la gp32? Quizas solo sea un problema de version de ML_Lib.

- Dreamcast ! Ya os podeis descargar el ELF para jugar en esta consola de mis amores. Por supuesto y como siempre os lo podeis desgargar tambien para Windows, Linux y GP32.

- Cambios en los tipo de fuentes: Creo que ahora estan bastante mejor.

chui
29/02/2004, 08:29
MORTI-> He estado investigando donde consume tanto tiempo la GP32 en el src/filmat/parser.c, en la linea 92:
if(! doc->LoadFile(doc,name))

En esta linea se queda todo mucho rato; no tiene sentido, en Linux, Windows o Dreamcast apenas consume tiempo... ¿No lee todo el XML de un tiron y lo parsea mas adelante? ¿Es posible que sea el acceso a la SMC? ¿Algun bug en mi version?.... AYUDA PLEASE !!!

mortimor
29/02/2004, 10:39
No estoy seguro, pero es mas que probable que se tratae del tema de la SMC. En windows no me da ningun problema y en GP32 siempre he notado este retraso. Tendre que estudiarlo.

La verdad es que ahora mismo la tengo un poco olvidada. LA version 0.2 esta medio terminada, pero tengo que añadir un par de cosas mas. Eso si, el codigo ha evolucionado bastante: mejor estructurado, algunas cosas mas rapidas, mas pequeño (la verdad es que no, porque con tanto añadido ha aumentado), nombres menos problematicos para que no se pegue con los programas.... el ML_DTD esta en fase de pruebas ya, el XPath esta a medias (es mucho curro), soporta CDATA, ENTIDADES, NOTACIONES, ... Muchos cambios y no tengo mucho tiempo.

Pido perdon por no sacar el editor de Vorton todavia. Digamos que he tenido problemas personales serios este finde y no he tenido tiempo de nada. Espero sacarlo en un dia o dos, si no me veo muy liado.

chui
29/02/2004, 12:34
No lo tengo claro, he estado mirando el codigo creo ver que lo lees todo de una tacada con fread, por lo que no deberia ser tan lento.

mortimor
29/02/2004, 15:14
Te contesto ahora que tengo un rato. Entre las mejoras que estoy haciendo esta un uso mas coherente de los objetos, asi que la cantidad de copias y reservas de memoria son mucho menores. Espero que eso acelere el procesos de carga.

Como cuanto tarda en cargar un nivel de vorton???

chui
29/02/2004, 15:35
Una brutalidad, morti... mas de minuto y medio hasta que sale de la dichosa funcion.... voy a trazar un poco a ver si cazo el motivo de tanta tardanza.

mortimor
29/02/2004, 16:44
Bueno, pues me temo que eso es demasiado tiempo.

En cuanto termine el jodido editor (me acabo de poner un rato) le voy a dar mucha caña a la ML_Lib. Estoy deseoso de tener ya la version 0.2 terminada, supondra un descanso para mi ver que mis principales objetivos estan cumplidos :D:D:D Despues... me dedicare a correjir fallos antes de avanzar.

Creo que la lentitud reside en el diseño de la libreria en si misma (creo que me emocione demasiado con lo de copiar a MS :D:D:D): muchas copias de memoria, muchas redirecciones de variable....

Pero el fundamental error que penaliza tanto el proceso es el hecho de que al cargar un documento se crea desde las hojas a la raiz y las copias de memoria se multiplican exponenciamente en cada nivel del arbol ERROR grave si se pretende ser eficiente. SOLUCION -> ya esta solucionado, solo con un pequeño cambio en la politica al añadir nodos hijos. Colgare mañana o pasado una version de ML_Lib 0.1 con este error subsanado y con los avances estables (o eso parece).


Perdon por las molestias.

chui
29/02/2004, 18:23
Gracias Morti.

No creo que sea un problema de eficiencia, porque en Dreamcast (200MHz) apenas tarda 2 segundos y en GP32 a 133MHz tarda mas de minuto y medio... y no me creo tanta diferencia de tiempo de gasto de CPU.

Por lo que he podido ver, se queda mucho mucho tiempo en la linea:
if (AnalizaE(this,fichero,in_buf,&i,&buffer_size, &pe) == 0)

Que esta localizada en el primer default dentro de la funcion mldocument_SetML de ML_Document.c


Quizas pueda servir de ayuda.

mortimor
01/03/2004, 12:10
Creo que no me sirve de mucho :) Piensa que el analisis del documento es recursivo y que todo el esta contenido en el elemento raiz, que se analiza en esa llamada.

A ver si con el apaño este que estoy preparando mejora. La verdad es que el consumo de CPU y memoria es menos de la mitad al procesar. :D:D:D

chui
04/03/2004, 00:36
¿He oido recursivo?.... ¿Se llama a AnalizaE de forma recursiva?.... ¿Es posible un problema en la pila de la GP32?.... no se, si hubiese desbordamiento lo logico es que se fostiara.