Comments (8)
Personally, I like to know the details on the reason it is faster other than the performance benchmarks on the README. Otherwise one can always study the code I guess. Also anyone knows what file-system is being used here for the benchmarks?
from fcp.
It's very shady that author did not mention copy-on-write anywhere in readme.
from fcp.
I'd like to know that too. Copy is a simple operation, just read and write, so what does fcp do to make it faster?
from fcp.
There is some discussion that took place on the hackernews regarding the same https://news.ycombinator.com/item?id=27523014
from fcp.
@AgainPsychoX The primary reason fcp
is faster than cp
is that it uses multiple threads to walk directories and issue IO requests in parallel, which is advantageous for performance on systems with SSDs. My guess as to why cp
doesn't do this is that cp
was written back when magnetic hard-drives were the norm, and issuing a large number of IO requests for disparate parts of a hard disk is quite bad for performance as it causes the drive head to seek large distances across the disk.
from fcp.
It's very shady that author did not mention copy-on-write anywhere in readme.
Hello @baverman,
Copy-on-write is mentioned implicitly in the footnote explaining the large performance difference on the "Large Files" benchmark run on macOS, which mentions the fclonefileat
and fcopyfile
syscalls. I can totally see how this is easy to miss though as it appears only in the footnote, and requires the reader to understand that those syscalls perform copy-on-write.
from fcp.
Personally, I like to know the details on the reason it is faster other than the performance benchmarks on the README. Otherwise one can always study the code I guess. Also anyone knows what file-system is being used here for the benchmarks?
See my response above and some of the discussion on hackernews than you linked for an explanation as to the performance. The filesystem used for the Linux benchmarks was xfs.
from fcp.
An explanation for fcp
's high-performance has been added to the README under the "Methodology" section.
from fcp.
Related Issues (20)
- Request for musl build? HOT 5
- support copy-on-write on Linux
- Build failed: use of unstable library feature 'array_from_ref' HOT 1
- Compile error: "use of unstable library feature 'array_from_ref' " HOT 1
- Feature request: terminal-based progress bar
- Feature request: setting maximum thread count. HOT 1
- Feature request: Speed limit and IOPS limit. HOT 1
- Benchmarks question: what is copying time? HOT 1
- Shall fcp on Linux use `posix_fadvise(POSIX_FADV_NOREUSE)`? HOT 1
- Platform independent packages (i.e. Flatpak or Snap) HOT 1
- Support for common flags from GNU ls HOT 2
- $Sign up for GitHub Sponsors $ HOT 1
- windows build fails with `cargo install fcp` HOT 1
- Deadlock when copying to a FAT32 volume
- [Feature] A progress meter would be nice HOT 2
- [Feature] Support clonefile(2) on macOS
- Benchmarks: compare with GNU Parallel
- [Feature] Move option would be nice
- Query for writing to SSD from NLSAS
- Disappointing results on workstation with btrfs raid1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fcp.