- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我在 Go 中运行一个程序,它在读取文件 /proc/stat
后连续发送数据。使用 ioutil.ReadFile("/proc/stat")
运行大约 14 小时后,出现错误:too many files open/proc/stat
点击here对于代码片段。
我怀疑 defer f.Close
有时会被 Go 忽略或者跳过它。
代码片段(以防 play.golang.org 比 stackoverflow.com 早死):
package main
import ("fmt";"io/ioutil")
func main() {
for {
fmt.Println("Hello, playground")
fData,err := ioutil.ReadFile("/proc/stat")
if err != nil {
fmt.Println("Err is ",err)
}
fmt.Println("FileData",string(fData))
}
}
最佳答案
原因可能是在你程序的某处:
您忘记关闭文件,或者
您依靠垃圾收集器在对象完成时自动关闭文件,但 Go 的保守垃圾收集器无法做到这一点。在这种情况下,您应该检查程序的内存消耗(程序运行时是否在稳定增加)。
无论哪种情况,请尝试检查/proc/PID/fd
的内容,以查看程序运行时打开的文件数是否在增加。
关于转到 ioutil.ReadFile() 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9171920/
我已经实现了一个 REST 服务,用于使用 IOUtils.copy() 下载一个中等大小 (250 Mb) 的 zip 文件,类似于 Most effective way to write file
我有一个Android 4.0/4.1用户上传的崩溃日志,但我无法重现。日志是这样的: java.io.IOException: close failed: EIO (I/O error) libco
复制方法给我这个错误: “IOUtils 类型中的方法 copy(InputStream, OutputStream) 不适用于参数 (FileInputStream, StringWriter, S
我正在尝试将我的Stanford CoreNLP版本升级到最新版本(之前是v3.5.2,尝试升级到v3.6.0)。编译完 v3.6.0 所需的所有新 jar 后,我启动了一个独立的斯坦福 CoreNL
我使用以下代码在我的 android 应用中创建了一个临时文件: public File streamToFile (InputStream in) throws IOException {
用途:IO工具类(将内容写到流中) 使用场景 IO工具类只是辅助流的读写,并不负责关闭流。原因是流可能被多次读写,读写关闭后容易造成问题。 (将内容写到流中) (将内容写到流中) (将内容
我正在使用 Apache IOUtils 下载文件。为了恢复下载,我使用以下代码: IOUtils.copyLarge(input,output,localFileSize,fileLengthOnS
我需要将 pdf 文件编码/解码为 Base64 格式。所以我从磁盘读取文件到String(因为我将来会收到String Base64格式的文件); String pdfString = IOUtil
我是Golang的新手。 我试图了解如何使用ioutil.ReadAll(非HTTP响应)。根据源代码(和文档): // ReadAll reads from r until an error or
这个问题在这里已经有了答案: 404 page not found - Go rendering css file (1 个回答) No such file or directory error in
我有一个 servlet,它使用具有以下逻辑的方法: ServletOutputStream out = response.getOutputStream(); IOU
我在下面的代码行中收到 OOM 错误。有办法解决吗?我尝试增加堆大小但没有用。 FileInputStream inputDoc = new FileInputStream(inputDoc1); b
使用 IOUtils.write 将字符串写入文件 try { IOUtils.write("test", new FileWriter(configFile)); }
我有一个类,它打开 HTTP 服务器并监听端口。回复是一个 http-header 加上一个 json 对象。该类从服务器获取输入流,将其转换为字符串,过滤 http header 并解析 json
我的应用程序中有两个文件到字符串的进程(一个实际上处理 Assets 文件)。 如果我对同一个文件重复这些过程中的任何一个几次,我会得到 OutOfMemoryErrors。 我怀疑这可能是因为我没有
我不是 Java 开发人员,但只需要了解一些 Java 正在做什么。 我有一些代码 IOUtils.copy(InputStream a, Writer b, "ISO-8859-1") 或类似的文字
我注意到似乎没有办法指定复制方法的字节长度。 copyLarge(InputStream input, OutputStream output, long inputOffset, long leng
这是我的情况:我正在使用 IOUtils 复制文件。接下来我要做的是向另一个程序发送一条 JSON 消息,表示“您可以下载副本”。问题是大约 25% 的时间其他程序收到错误消息“收到意外的 EOF 下
我在 android 上编写应用程序,它将 xml 文件发送到 PHP 服务器。这是我的代码: InputStream is = new FileInputStream(file); HttpClie
我尝试压缩超过 100Mb 的大型视频文件。 public static void compress(File input, File output) throws IOException {
我是一名优秀的程序员,十分优秀!