当前位置: > > > > readString 与 readLine
来源:stackoverflow
2024-04-21 11:39:35
0浏览
收藏
本篇文章向大家介绍《readString 与 readLine》,主要包括,具有一定的参考价值,需要的朋友可以参考一下。
问题内容
我正在编写一个应用程序来从文件列表中逐行读取并进行一些处理。我想使用尽可能少的内存。 我遇到了这个问题https://stackoverflow.com/a/41741702/3531263
发帖者说 readString 使用比 readLine 更多的 RAM,并且他们发布了一些代码。 我不明白的是如何使用更多的内存?因为最终,按照他们的代码编写方式,他们仍然将整行写入缓冲区。那么这是否意味着如果他们只使用 readString,结果会是一样的?
解决方案
按照他们的代码编写方式,他们仍然将整行写入缓冲区
他们的代码,是的。 您的代码可能不需要整行同时位于内存中。例如,您的程序正在按请求 ID(位于行的开头)过滤日志文件。它不需要读取可能有几兆字节或更多的整行,只是因为请求 ID 错误而拒绝它。但对于 ReadString
,你就没有奢侈的选择了。
我同意 Sergio 的观点。另外,看看标准库中的 。 ReadLine
调用 ReadSlice('\n')
一次,然后运行几个分支以确保转换后的数据返回适当的标记值或错误。另一方面,ReadBytes
和 ReadString
都循环重复调用 ReadSlice(delim)
,因此它们必然会复制至少与 ReadLine
一样多的数据到内存中,甚至可能更多第一次通话时为 。
终于介绍完啦!小伙伴们,这篇关于《readString 与 readLine》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~公众号也会发布Golang相关知识,快来关注吧!