Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Acelerar la lectura de un archivo texto cuando su tamaño es muy grande.
#1

Buenas!.

Estaba buscando un archivo en un lugar de Internet, como ese lugar tenía tantos directorios era imposible encontrarlo
de una manera rápida.

Menos mal que en el directorio raíz existía un archivo filelist.zip. Que contenía en formato txt cada uno de los archivos,
directorios. Era la forma más fácil de localizar lo que quería.

Este es un archivo de texto comprimido. Con deciros que mide 20MB comprimido y descomprimido 150MB...casi nada.
¿ Quién podía decir que en un archivo de texto no podía caber tanta información ?. Smile

La idea de que sea un txt es por compatibilidad. Ya que son temas de Amiga Commodore.
Cargándolo y todo en un disco ssd se ve en el editor Xed, una barra de progreso...vamos que no carga a la primera y
el procesador se calienta "un poco".

El documento tiene 1413690 líneas. Si, más de un millón de líneas. Cool

Cuando uso la barras de desplazamiento vertical hay momentos que el fondo del editor se pone momentáneamente negro aunque las letras no dejan de verse.
Una vez que el documento es cargado la velocidad de mostrarlo es rápida. Al igual que cuando usamos el evento Data del TableView o GridView con
una base de datos grande para limitar el número de registros que se muestran.

Entonces, si este documento de txt se convirtiese a otros formatos:
¿ Ganaríamos en velocidad ?.
¿ El proceso de carga seria más rápido ?.
¿ El tamaño del archivo seria menor ?.

Estamos hablando de que es un texto puro sin aditivos.

Por muy grande que sea filelist.txt  he usado el comando grep para buscar el nombre del archivo que me interesa y la presentación de las coincidencias
fueron instantánea. ( si ya estaba en memoria el archivo ó que es realmente rápida la búsqueda ). Más que cargar todo el archivo y usar el buscador del
editor. Voy a cada coincidencia y no datos que no me interesa mostrar en la pantalla.

De todas formas si la coincidencia se encuentra al principio y al final, grep deberá leer el archivo entero, tal como lee Xed.

Cada línea del documento tiene la pinta de un archivo CSV con el carácter "|" de delimitador.
Ejemplo:
Cita:09/23/16|1976448|TheZone/files/_2016/expansion_boot_roms [Blizzard SCSI Kit III, Blizzard 2060 v8.2.].zip

Saludos

"El lobo siempre será malo si sólo escuchamos a Caperucita.". El lobo.
    ¡Gracias!
#2

(06-05-2021, 13:58)Shell escribió:  Entonces, si este documento de txt se convirtiese a otros formatos:
¿ Ganaríamos en velocidad ?.
¿ El proceso de carga seria más rápido ?.
¿ El tamaño del archivo seria menor ?.

Depende del formato
Depende del programa
Depende del formato y depende el programa

Luego la velocidad de grep no creo que tenga que ver con que cargue mas rápido o mas despacio el archivo de texto, me parece que tiene relación con que no lo carga todo de una vez sino que va cargando partes de este y las va analizando algo así como linea por linea, creo.
Saludos.
    ¡Gracias!
#3

¿Has probado a abrir una sesión sólo de terminal (Alt+F2, por ejemplo) y cargar mediante Vim, Nano o cualquier otro editor de texto de terminal?

Lamentablemente estoy notando últimamente que el rendimiento de los Linux actuales está empezando a quedar por debajo de otros S.O. más comunes y bastante más odiados para tareas tan simples como la que mencionas. Y no es una percepción mía, te invito a que hagas la prueba usando otro $istema operativo Cool

Llevo tiempo notando que Linux en general no está avanzando, sino retrocediendo en algunos aspectos. Quizás sea por su naturaleza libre y el hecho de que no exista un mando único, sino una especie de competición por ver quién la tiene más grande... Pero esto es sólo una apreciación mía, aunque da para bastante debate, creo.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
    ¡Gracias!
#4

(06-05-2021, 20:31)jguardon escribió:  Lamentablemente estoy notando últimamente que el rendimiento de los Linux actuales está empezando a quedar por debajo de otros S.O. más comunes y bastante más odiados para tareas tan simples como la que mencionas.

Hola Jesús, podrías dar mas detalles yo hace años que no uso otros $O. luego te referís a linux el núcleo o a el escritorio completo?
Saludos.
    ¡Gracias!
#5

No puedo precisar más. Algunas comparativas no medidas explicitamente son bastante decepcionantes. Tareas tan simples como cargar un pdf grande con MacOS o con W10 tardan bastante menos en máquinas similares, y ya no hablamos de reproducción de videos en HD.

Tengo un portátil con Intel I5 y 8Gb de RAM que uso para distintas tareas cambiando el HD según me interese, de forma muy fácil (sólo hay que quitar la tapa trasera deslizandola y de la misma forma, cambiar el HD que va enchufado mediante conectores SATA). Para trabajo no tengo más remedio que usar W7 y para mis cosas, uso un Linux Mint moderno. Pues bien, la diferencia de rendimiento es más que evidente y no llego a entender el porqué. Tampoco sale muy bien parado en cuanto a velocidad de gráficos y claridad y definición de los mismos, textos, etc. De verdad que llevo un tiempo examinando este hecho y es bastante preocupante.

Otra cosa más, suelo usar VirtualBox en una máquina de trabajo corriendo MacOS X y todas las instancias de Linux virtualizadas han experimentado una bajada de rendimiento espectacular, hasta el punto de no ser usables. Pero esto puede deberse a alguna cagada de los chicos de Oracle desde que compraron VirtualBox, no lo sé. En definitiva, llevo un tiempo bastante preocupado por el futuro de Linux y la evidente descentralización que lo caracteriza desde siempre para bien o para mal.

Saludos

Por favor, usa el corrector ortográfico antes de pulsar el botón 'Enviar'
    ¡Gracias!
#6

(06-05-2021, 21:00)jguardon escribió:  Otra cosa más, suelo usar VirtualBox en una máquina de trabajo corriendo MacOS X y todas las instancias de Linux virtualizadas han experimentado una bajada de rendimiento espectacular, hasta el punto de no ser usables. Pero esto puede deberse a alguna cagada de los chicos de Oracle desde que compraron VirtualBox, no lo sé. En definitiva, llevo un tiempo bastante preocupado por el futuro de Linux y la evidente descentralización que lo caracteriza desde siempre para bien o para mal.

Si, en eso BSD le lleva la delantera Linux (osx es un bsd).
Hace mucho que deje mint porque era lento y siempre pasaba algo, ahora uso manjaro y es muy rápido, prueba en la maquina virtual y me dices.
Saludos.
    ¡Gracias!
#7

(06-05-2021, 20:31)jguardon escribió:  ¿Has probado a abrir una sesión sólo de terminal (Alt+F2, por ejemplo) y cargar mediante Vim, Nano o cualquier otro editor de texto de terminal?

He probado con Nano y la carga es instantánea. Ademas muestra todas las líneas que ha leído , todas.

LibreOffice produce una barra de progreso y luego se queda en blanco un rato, pero tarda.

Atom....

[Imagen: U1Dkc5Z.png]

En parte normal, por si se desespera el usuario.

SublimeText es instantáneo. Ultra-rápido.

Se podía decir que cada aplicación actuá de forma distinta, cada una de ellas es mejor para una cosa que
para otra.

Hago otro test y vuelvo.

Saludos

"El lobo siempre será malo si sólo escuchamos a Caperucita.". El lobo.
    ¡Gracias!
#8

(06-05-2021, 22:43)Shell escribió:  He probado con Nano y la carga es instantánea.

Probaste con gedit?
Saludos.
    ¡Gracias!
#9

(07-05-2021, 00:12)tincho escribió:  Probaste con gedit?

Es igual que Xed. Que por cierto, la primera vez que lo veo no me gusta ya que no muestra la barra de menú. ( Habrá que mirar opciones ).

Una cuestión.

Las puntuaciones que se les da a las aplicaciones en el gestor de software de Linux Mint se supone que aunque lo veas desde otra
versión de distro de Linux Mint, ¿ es la misma ?. Me aparecido ver que en la 19.1 puntuaban muy bien a "Pluma" ( el editor de Linux Mint
por defecto) y en cambio en la 20.1 no le dan tan buena puntuación.

Nano está por encima de Gedit en cuanto a puntuación. Y Pluma en la 20.1 está por debajo de Gedit.

Si uso el comando:

Bash
  1. time cat filelist.txt



En consola sin estar el escritorio gráfico presente tarda 4m 55, 898s
Con la consola estando el escritorio, tarda 9,143s

Si ejecuto:

GAMBAS
  1. Public Sub Ejemplo1()
  2.  
  3.   Dim ruta As String
  4.   Dim cadena As String
  5.   Dim t As Float
  6.  
  7.   ruta = User.Home &/ "Descargas/filelist.txt"
  8.   t = Timer
  9.  
  10.   cadena = File.Load(ruta)
  11.   Print cadena
  12.   Print "Tiempo de carga y muestra: " & Format(Timer - t, "0.#####" & "s")
  13.  
  14.   Print "Error: " & Error.Text
  15.  



En la consola sin el escritorio, casi igual que la orden "cat" en la misma situación.
Y de la forma consola bajo escritorio, igual que la orden "cat".

Saludos

"El lobo siempre será malo si sólo escuchamos a Caperucita.". El lobo.
    ¡Gracias!
#10

(08-05-2021, 11:57)Shell escribió:  En la consola sin el escritorio, casi igual que la orden "cat" en la misma situación.
Y de la forma consola bajo escritorio, igual que la orden "cat".

Shell: seria interesante que pases el link del archivo de texto que usaste para hacer las pruebas así podemos probar cada uno en la configuración local.
Saludos.
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje
Último mensaje por tincho
08-10-2020, 23:15

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)