小编zzn*_*zzn的帖子

为什么系统调用unlink这么慢?

#include <unistd.h>
#include <stdio.h>

void dump_log(int size){
    char cmd[1024];
    snprintf(cmd, sizeof(cmd)/sizeof(cmd[0]), "dd if=/dev/zero of=from.bin bs=1024 count=%d", size);
    int ret = system(cmd);
    if (ret<0){
        perror("system");
    }

}

int main(){    
    const char *filepath = "from.bin";

    while(1){
        dump_log(1024*100);
        sleep(10);
        unlink(filepath);
    }

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

strace -T ./a.out 显示这个:

unlink("from.bin")                      = 0 <0.019916>
Run Code Online (Sandbox Code Playgroud)

取消链接文件(100M)花费19ms,取消链接文件时会发生什么?为何这么慢?

系统信息:linux 3.13.0-57-generic,Ubuntu 14.04.2 LTS,ext4

linux performance disk unlink ext4

4
推荐指数
1
解决办法
1661
查看次数

通道上的 cap() 不是恒定的?

ch := make(chan int, 10)
fmt.Println(cap(ch))
Run Code Online (Sandbox Code Playgroud)

函数调用是cap(ch) 常量还是求值

golang 规范 说:

如果 s 是字符串常量,则表达式 len(s) 是常量。如果 s 的类型是数组或指向数组的指针,并且表达式 s 不包含通道接收或(非常量)函数调用,则表达式 len(s) 和 cap(s) 是常量;在这种情况下,不评估 s。否则,len 和 cap 的调用不是常量,并且 s 会被求值。

看来是评价了

go

3
推荐指数
1
解决办法
1798
查看次数

在Golang中TCPConn.Write/Read会返回什么错误?

在golang中,您将如何处理TCPConn.Read/Write的错误返回?本文档没有说明读/写错误.

error-handling tcp read-write go

2
推荐指数
1
解决办法
1962
查看次数

如何使用goroutine来执行for循环?

假设我有一个像这样的切片:

stu = [{"id":"001","name":"A"} {"id":"002", "name":"B"}]也许还有更多这样的元素。切片内部是一个长字符串,我想使用 json.unmarshal 来解析它。

type Student struct {
   Id   string `json:"id"`
   Name string `json:"name"`
}

studentList := make([]Student,len(stu))
for i, st := range stu {
   go func(st string){
      studentList[i], err = getList(st)
      if err != nil {
         return ... //just example
      }
   }(st)
}
//and a function like this
func getList(stu string)(res Student, error){
   var student Student
   err := json.Unmarshal(([]byte)(stu), &student)
   if err != nil {
      return
   }
   return &student,nil
}
Run Code Online (Sandbox Code Playgroud)

我得到了 nil 结果,所以我想说 goroutine …

go goroutine

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

go ×3

disk ×1

error-handling ×1

ext4 ×1

goroutine ×1

linux ×1

performance ×1

read-write ×1

tcp ×1

unlink ×1