作为圣诞礼物,我用 Java 编写了一个计算素数的小程序。我的目的是让它整夜打开,计算下一个素数并将其写入 .txt 文件。早上我会终止该程序并将 .txt 文件带给我的朋友作为圣诞节礼物。

有什么我应该担心的吗?请记住,与您交谈的是真正的初学者 Ziggy,而不是某个聪明的错误检查 ASM 人员。

编辑更具体地说,由于我将让这个程序整夜计数素数,我是否有机会遇到某种与内存相关的错误?比如,一堆堆压碎了一堆,或者狗和猫睡在一起?

编辑更具体地说,当文件大小为 4GB 时,我是否可以放入一行代码来停止打印行?只是为了安全吗?

编辑:成功:整夜打开后,我得到的素数不超过 13 KB,最高的是 22947217,相当于数万个素数。成功!

有帮助吗?

解决方案

更可能您使用的算法是缓慢的。随着素数获得较大的程序将需要更长的时间和更长的计算单个素数。如果你让它夜间运行,在文本文件不会是在早晨非常大。我会留下深刻的印象,如果它是在一对夫妇兆的。

其他提示

我将建议发送SMS消息为每个计算素数。你的朋友想这比一堆纸好得多。另外,他可以更经常地更新。

有很多限制,但它们都不是 .txt 文件固有的:

  • Windows 9x 记事本无法打开大于 64KB 的文件。
  • Windows NT/2k/etc 的记事本没有限制,但在处理多兆字节文件时往往会卡住并锁定。您还需要记住,大多数文本编辑器都是愚蠢的,并尝试将整个文件读入 RAM。
  • 许多软件都限制为 2GB 或 4GB 文件,具体取决于它们是否使用有符号整数或无符号整数 - 正如有人已经提到的那样,FAT32 就犯了这个错误。

从技术上讲,有不同之处在于它在你的文件系统的地方没有任何限制。然而,记事本,真是胡思乱想约可耻打开大型文件。

您可能会考虑跟踪你写的每个文件的字节数,并在一些数量的字节转换到一个新的。你也可以为你的文件的查看器,以便您的朋友可以更容易地看到他的礼物。 :)

如果记错,FAT32具有4gig文件限制大小。

齐格 -

我爱这样的:“没有一些聪明的错误检查ASM的家伙。”你所描述的我们所有的人!

有足够的磁盘空间,写了!正如前面提到的,一定用来打开文件可以打开很大的文件编辑器。

节日快乐,真初学者齐格。

作为唯一的地方的大小你存储在磁盘上的文本文件。

和,如果你不写这一切的时候了,你的内存+虚拟内存。

如何节省一些CPU周期和公正下载一个预先计算的素数的列表?或者是更多的“才是最重要的思想”? :)

怎么样只是创建一个文件对每个素数,然后使用文件名显示号码是多少?

不知怎的,我怀疑有你的程序在夜间运行,该文件大小将是一个问题,考虑到它会需要更长的时间来发现的素数为数字变得越来越大的时候。只要确保你清理或者你可能吃了你所有的RAM。

要回答你的问题:理论上,文件系统限制文件大小。然而,大量的文字编辑器崩溃(Vim不会)加载大文件(> 100 MB)的时候,因为他们试图适应它的一个缓冲区。

综上所述,考虑你的文件分割成块的最薄弱环节(文本编辑器)可以处理。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top