aboutcode-org / aboutcode-org/scancode-toolkit

files opened many times during scanning

未關閉
#3,347 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
bug
主要語言
Python
星號
2.6k
分支
791
平均合併
1 天 12 小時
30 天內合併 PR
5

描述

### Description

When running scancode with `strace` I can see that every file is opened 4 or 5 times and also read as many times accordingly. A small (filtered) snippet of `strace` output:

```
...
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.c", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.c", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.c", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.c", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.c", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.h", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.h", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.h", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.h", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.h", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.yo", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.yo", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.yo", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.yo", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzip.yo", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzipall", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzipall", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzipall", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/rzipall", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/stream.c", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/stream.c", O_RDONLY|O_NONBLOCK) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/stream.c", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/stream.c", O_RDONLY|O_CLOEXEC) = 4
[pid 392633] openat(AT_FDCWD, "/tmp/rzip-2.1/stream.c", O_RDONLY|O_CLOEXEC) = 4
...

```

This seems a bit excessive. I haven't yet tried with really large files, but if these are also read multiple times (instead of data being shared between scans) it could get quite expensive.

貢獻指南

開啟貢獻指南

評估

這個 Issue 還沒有評估資料。

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。