It’s no secret that systems will generally get slower as more data is placed inside of them. Windows and Android, for example, were notorious for slowing down after a few years - although a factory reset will usually resolve the performance problems. Filesystems are also known for slowing down significantly when large amounts of data are placed in them; just look at the disaster that is the Android FUSE filesystem.
My question is how will Anytype’s performance be affected as the amount of data (both size and number of objects) increase? Have any internal tests been conducted to see how much data Anytype can hold before significant speed deterioration occurs?
Specifically, I’m very concerned about the speed at which sets opens will be affected as tens of thousands of objects accumulate inside Anytype. With just ~1000 objects, I experience a two-to-three second waiting time for a set to load the first time after startup. (Subsequent loads are much faster.) How much will the speed deteriorate after many more objects have accumulated, especially when considering that each individual object must be filtered and sorted when a Set is opened?
I’m also very concerned about how Sync will scale with lots of objects - after all, Anytype’s sync isn’t exactly known for being fast.
Another area of concern is about how crust and bloat might pile up in the internal Anytype database. The app is somewhat known for using large amounts of disk space, likely due to it keeping each and every change that has been made to an object. Object removal also isn’t a total guarantee of complete data removal; as seen with deleted Types showing up in the Type selection menu.
I’d really appreciate if any insight can be given into this topic.
I experience a huge amount of waiting time on android when syncing, mentioned here
I am also very interested how Anytype will handle this in the future since Anytype offers unlimited space and I don’t feel like that I have this “feature” completely exhausted yet, and it’s already struggling : (
Good idea to revive this thread, as it’s been several months since we first discussed it, and as far as I know at the time we didn’t get an official comment from AT on it.
A lot has happened since, so hopefully we can have more information about this from the team now!
We are working on Anytype’s new infrastructure/sync layer, so sync should (in theory at least) work a lot faster than it was before, because we removed a lot of redundant data structures and made sync more straightforward.
With regards to testing, we are still in the process of development and only after we finish the core structure of our new sync layer, we will start internal testing of this infrastructure. So right now we can’t tell you exact numbers, but we def plan to fix the problems with loading large amounts of objects to not have 2/3 secs loading times
I was searching for such topic in the community and come across your response. I’m glad that it’s part of Anytype’s future plan because lately as my library has gotten quite huge, the object loading times are constantly above 2 seconds and it’s kinda annoying. It doesn’t give you the sense of snappiness that I once experienced starting from the 0.30 build, I think .
I hope the new infrastructure bring substantial gains in terms of overall speed and snappiness. We’re getting closer to the public launch, and we are hoping to attract users from Notion for example, Anytype has to be better since one of the main complaints of users to Notion is the lack of speed and reliability when databases get big.
You can open a relation like object type in your library and it will tell you how many objects you have with that relation. Since every object has this relation, it basically tells you how many you’ve got in your space.
I wouldn’t recommend using the creation date relation since some objects don’t seem to have this relation.
you are right. I was looking for such relations in the library but for some reason I either couldn’t find them or they wouldn’t show me object with that specific relation. Anyway, I used the “last modified date” relation and it showed me around 3200 objects; so, I must have missed some of these when I was manually counting them using object types.
Also, here’s a video showcasing the loading time I’m having right now; It’s around 1.4 seconds to sometimes over 3.5. And I’m really worried how it’s goind to be in 1 year time when I have bring more of my stuff into Anytype:
I could imagine that all those cover images also slow down things. Sure, sets with a huge amount of objects have to do some heavy load anyways. But I personally experienced that if I turn pictures off, its a bit faster.
I am sure the team can give better insights. I also hope that the responsiveness and overall performance won’t be getting worse, because I am already running it on M1 which is super fast. Especially on older devices, Anytype feels rather slow.
Anyways, it’s probably not the main focus atm, although last release (i think) they mentioned view and sets optimizations. But can’t really tell if i noticed a difference or not.
The slowest loading time is unsurprisingly for the sets with pictures as covers being shown. But as it’s obvious the loading time is consistently over 1.5 sec for all the other pages and objects.
And btw, I’m on M1 so I didn’t expect it to be bugged down by this much so soon.
Of course you will experience dramatic lack of performance when the object amount grows indefinitely, we will eventually work on different places that load large lists and profile and optimize them, so if you have any performance issues I suggest adding some special tag to it so I can check it after the release. @Angelo can help with this.