Вопрос

В качестве рождественского подарка я написал на Java небольшую программу для вычисления простых чисел.Я намеревался оставить его включенным на всю ночь, вычисляя следующее простое число и записывая его в файл .txt.Утром я закрывал программу и относил файл .txt другу на Рождество.

Есть ли что-то, о чем мне следует беспокоиться?Имейте в виду, что вы разговариваете с настоящим новичком Зигги, а не с каким-то умным парнем, проверяющим ошибки ASM.

РЕДАКТИРОВАТЬ Более конкретно, поскольку я оставлю эту программу на всю ночь, считая простые числа, есть ли вообще шанс, что я столкнусь с какой-то ошибкой, связанной с памятью?Например, штабели, разбивающие груды, или собаки и кошки, спящие вместе?

РЕДАКТИРОВАТЬ, более конкретно, есть ли строка кода, которую я мог бы ввести, чтобы остановить печать строк, когда размер файла составляет 4 ГБ?Просто чтобы быть в безопасности?

РЕДАКТИРОВАТЬ:успех:оставив его включенным на всю ночь, я получил не более 13 КБ простых чисел. Максимальное значение, которое я получил, было 22947217, что соответствует десяткам тысяч простых чисел.Успех!

Это было полезно?

Решение

Скорее всего, вы используете медленный алгоритм.По мере того, как простые числа становятся больше, вашей программе будет требоваться все больше и больше времени для расчета одного простого числа.Если вы позволите ему работать всю ночь, утром текстовый файл не будет очень большим.Я был бы впечатлен, если бы оно превышало пару мегабайт.

Другие советы

Я бы рекомендовал отправлять SMS-сообщение для каждого рассчитанного вами простого числа.Вашему другу это понравится гораздо больше, чем куча бумаги.Плюс он может обновляться гораздо чаще.

Существует множество ограничений, хотя ни одно из них не является присущим файлам .txt:

  • Блокнот Windows 9x не открывает файл размером более 64 КБ.
  • Блокнот Windows NT/2k/etc не имеет ограничений, но имеет тенденцию блокироваться при работе с файлами размером в несколько мегабайт.Вы также должны помнить, что большинство текстовых редакторов тупы и пытаются прочитать весь файл в оперативной памяти.
  • Многие программы ограничены файлами размером 2 ГБ или 4 ГБ в зависимости от того, используют ли они целые числа со знаком или без знака - поскольку кто-то уже упоминал, что в этом виноват FAT32.

Технически, нет никаких ограничений, кроме тех, которые налагает на вас файловая система.Однако Блокнот очень не любит открывать неприлично большие файлы.

Вы можете рассмотреть возможность отслеживания количества байтов, которые вы записываете в каждый файл, и переключения на новый после определенного количества байтов.Вы также можете предоставить программу просмотра своих файлов, чтобы вашему другу было легче увидеть свой подарок.:)

Если память не изменяет, FAT32 имеет максимальный размер файла в 4 гигабайта.

Зигги--

Мне это нравится:«Не какая -то умная проверка ошибок ASM Guy». Вы описываете всех нас!

Имейте достаточно места на диске и записывайте!Как упоминалось ранее, убедитесь, что редактор, используемый для открытия вашего файла, может открывать очень большие файлы.

С праздником, настоящий новичок Зигги.

Только относительно размера места, где вы храните текстовый файл на диске.

И, если сразу все не пишешь, то твоя память+виртуальная память.

Как насчет того, чтобы сэкономить несколько циклов процессора и просто загрузить предварительно рассчитанный файл? список простых чисел?Или это больше «мысль, которая имеет значение»?:)

А как насчет того, чтобы просто создать один файл для каждого простого числа, а затем использовать имя файла для отображения числа?

Почему-то я сомневаюсь, что при запуске вашей программы в ночное время размер файла будет проблемой, учитывая, что поиск простых чисел займет больше времени, поскольку числа становятся больше.Просто убедитесь, что вы очистили, иначе вы можете съесть всю свою оперативную память.

Чтобы ответить на ваш вопрос:Теоретически файловая система ограничивает размер файла.Однако многие текстовые редакторы дают сбой (vim нет) при загрузке больших файлов (> 100 МБ), потому что они пытаются уместить их в один буфер.

Подводя итог, рассмотрите возможность разделения файлов на фрагменты, с которыми может справиться самое слабое звено (текстовые редакторы).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top