2008-12-24 24 views
14

Como regalo de Navidad, he escrito un pequeño programa en Java para calcular números primos. Mi intención era dejarlo encendido toda la noche, calculando el siguiente primer y escribiéndolo en un archivo .txt. Por la mañana mataría el programa y llevaría el archivo .txt a mi amigo para Navidad.¿Hay un límite superior en el tamaño de archivo .txt?

¿Hay algo de lo que deba estar preocupado? Tenga en cuenta que esta es la verdadera Ziggy principiante con la que está hablando, no es un tipo inteligente de error que comprueba ASM.

EDITAR Más específicamente, dado que voy a dejar este programa en todos los números primos de conteo nocturno, ¿hay alguna posibilidad de que encuentre algún tipo de error relacionado con la memoria? Al igual, montones de pilas aplastantes o perros y gatos durmiendo juntos?

EDITAR incluso más específicamente, ¿hay una línea de código que podría poner para detener la impresión de líneas cuando el tamaño del archivo es de 4 GB? ¿Solo para estar seguros?

EDITAR: éxito: después de dejarlo encendido toda la noche, obtuve no más de 13 KB de números primos, el más alto que obtuve fue 22947217, que es como decenas de miles de números primos. ¡Éxito!

+10

El próximo año puede darle a su amigo una caja de números de Fibonacci; o) – wcm

+0

Heh. Todavía tengo, en alguna parte, un CD que contiene la salida de mi primer generador de primos. Un tren de bits descomprimido de 256 megabytes que contiene verdadero/falso para cada número impar menor que MAXINT. Tomó poco menos de un día para terminar. :-) –

+0

¡Es un hermoso regalo de Navidad! – Tbb

Respuesta

5

Es muy probable que esté utilizando un algoritmo que es lento. A medida que los primos se hacen más grandes, su programa tardará más y más en calcular un primo único. Si deja que se ejecute durante la noche, el archivo de texto no va a ser muy grande por la mañana. Me impresionaría si se trata de un par de megas.

+0

¡Agradable! De hecho, programé el programa para ver si podía adivinar qué tan grande sería el archivo de texto para mañana. Alrededor de medio minuto me dije: "oh, espera, el aumento de tamaño será cada vez más pequeño: tengo poco de qué preocuparme". – Ziggy

0

Solo en cuanto al tamaño del lugar donde está almacenando el archivo de texto en el disco.

Y, si no está escribiendo todo de inmediato, su memoria + memoria virtual.

+0

Downwalker serial: está siendo rastreado por StackOverflow. Todos sus votos a la baja serán anulados en algún momento. –

+0

con respecto al downvoter serie, no parece ser así .. –

2

Técnicamente, no hay límite excepto el que el sistema de archivos le impone. Sin embargo, el Bloc de notas es realmente malhumorado al abrir archivos obscenamente grandes.

18

Recomendaría enviar un mensaje SMS por cada primo que calcule. A tu amigo le gustaría mucho mejor que un montón de papel. Además, se puede actualizar con mucha más frecuencia.

Puede enviarlos gratis desde here:.

Solo tienes que pasar el captcha.

+1

@Job B: al principio .... –

+0

Sí, después de los primeros cientos de millones de primos, debería comenzar a ser razonable :) –

+0

Además, SMS tiene una límite de texto de 160 caracteres. Entonces, cualquier primo más grande que eso no es posible. –

1

Si la memoria sirve, FAT32 tiene un tamaño de archivo de 4gig.

2

Puede considerar el seguimiento del número de bytes que escribe en cada archivo y cambiar a uno nuevo después de algunos bytes. También puede proporcionar un visor para sus archivos para que su amigo pueda ver su regalo más fácilmente. :)

1

Ziggy--

Me encanta este: "chico ASM de cheques no algún error inteligente". ¡Nos estás describiendo a todos!

¡Tenga mucho espacio en disco y escriba! Como se mencionó anteriormente, asegúrese de que el editor utilizado para abrir su archivo puede abrir archivos muy grandes.

Felices fiestas, verdadero principiante Ziggy.

7

Hay un montón de límites, aunque ninguno de ellos es intrínseca a .txt archivos:

  • Windows 9x Bloc de notas no se abre un archivo> 64KB.
  • El Bloc de notas de Windows NT/2k/etc no tiene límite, pero tiende a atascarse y bloquearse en archivos de varios megabytes. También debe recordar que la mayoría de los editores de texto son tontos y tratan de leer todo el archivo en la memoria RAM.
  • Gran cantidad de software está limitado a archivos de 2GB o 4GB dependiendo de si usan entradas con o sin firma, como alguien que ya mencionó FAT32 es culpable de esto.
0

¿Qué tal si guardamos algunos ciclos de CPU y solo descargamos un list of primes precomputado? ¿O es más "lo que cuenta"? :)

+0

Definitivamente la idea que cuenta: ¡es Navidad, amigo mío! – Ziggy

+3

Estoy tan contenta de que no esté en su lista de Navidad :) –

0

¿Qué tal si solo creas un archivo para cada número primo y luego usas el nombre del archivo para mostrar el número?

+0

, usted golpearía el límite del elemento del directorio bastante rápido. –

+0

Eso depende del sistema de archivos. Pero esa sería una pregunta completamente nueva. – Marc

0

De alguna manera dudo que al ejecutar su programa de la noche a la mañana, el tamaño del archivo sea un problema, teniendo en cuenta que llevará más tiempo encontrar números primos a medida que los números se hacen más grandes. Solo asegúrate de limpiar o puedes comer toda tu memoria RAM.

Para responder a su pregunta: En teoría, el sistema de archivos restringe el tamaño del archivo. Sin embargo, muchos editores de texto fallan (vim no) al cargar archivos grandes (> 100 MB), ya que intentan colocarlo en un búfer.

En resumen, considere dividir sus archivos en fragmentos que el enlace más débil (editores de texto) puede manejar.

Cuestiones relacionadas