Comments (1)
Thanks for your interest in the project!
First of all, there are some specifics of how OS filesystem works. Bigger files are divided into chunks and that's why the system needs some time to figure out what chunk (correct naming here is "block") basically should be used for insertion or retrieval.
That could also be optimized if using caches and different lighter files for storing data in FileFS, but it was not the scope of this project. But if you want to help implement such a feature - please go ahead! This project is open for any contributions.
From the .NET point of view problem is in .Seek
method call for FileStream
on large files.
You could also find out more information here.
TL;DR:
FileStream.Seek
is actually quite fast - though it will be slower on larger files than smaller ones. It's not a perfectly linear jump, since the file may/will be fragmented on disk (especially if it's a large file), so multiple blocks need to be read, and more need to be read in larger files.
from filefs.
Related Issues (19)
- Improve known size byte array allocations using Span<T>
- Implement block-based allocator
- Add CreatedOn and UpdatedOn information for file descriptors HOT 1
- Implement validation HOT 1
- Implement logging and --debug option to the CLI HOT 1
- Add overloads for .Write and .Read methods HOT 1
- Use long instead of int in offset and size HOT 3
- Make library thread-safe HOT 1
- 2.0.0 Documentation
- Add auto-resize of the storage if there is not enough space HOT 1
- Implement inter process locking to allow usage of same FileFS file across multiple CLI instances HOT 1
- Implement FileFS memory usage optimization (defragmentation) HOT 1
- Setup CI through GitHub Actions to review code quaility and to run unit tests HOT 1
- Cover code with unit tests HOT 1
- Cover code with clear XML documentation HOT 1
- Create documentation pages
- Implement folders HOT 1
- Implement CLI HOT 1
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 filefs.