A few thoughts on performance

Anything else
sasha
Posts: 168
Joined: Wed Feb 17, 2016 4:59 pm

A few thoughts on performance

Post by sasha » Mon Oct 16, 2017 3:35 pm

Maybe this is of interest for some of you. Out of curiosity, I made a few simple performance experiments with NC (1.2.2) and some of its competitors, Commander One (1.7.4.2445), Crax (1.10.13), fman (0.6.9) and Marta (0.4.3) on my Mid-2014 MBP i7 with Apple SSD.

For basic file operations, I didn't find significant performance differences, between local or remote locations. OS effects like caching obviously play a big role.

But what did I notice is that GUI responsiveness really depends on the amount of items in the panel. Opening a folder with 2000+ items (happens often in my work) lead to following results:

NC, Marta: Almost not noticeable delay, GUI responsiveness was not affected.

CRAX, Commander One: Noticeable delay, GUI responsiveness slightly more sluggish.

fman: Huge delay, about 7 seconds of spinning beach ball. GUI functions (resizing window...) bearly usable. Maybe due to the platform-independent Python architecture?

The startup time obviously also depends on the folder displayed at the start. To make it more comparable, I used a folder with few items. Here, NC and Marta were fastest, then CRAX and COne slightly slower, then fman with huge delay of 2-3 seconds.

Didn't compare other functions like File Search because they are not implemented on all applications.

Bottom line: Great job with the efficient implementation, Mike. Thumbs up!

JayB
Posts: 192
Joined: Sun Jan 08, 2017 4:38 pm

Re: A few thoughts on performance

Post by JayB » Mon Oct 16, 2017 6:04 pm

I concur, though I'm a bit perplexed about fman; it seems to be such a slim application, which means that it should be fast as well.

Fastest I've found so far is Rixstep Xfile – http://rixstep.com/4/0/xfile/ – but it has very rudimentary functionality, so in that regard it's no match for any of the other applications.

sasha
Posts: 168
Joined: Wed Feb 17, 2016 4:59 pm

Re: A few thoughts on performance

Post by sasha » Tue Oct 17, 2017 9:51 am

JayB wrote:
Mon Oct 16, 2017 6:04 pm
I concur, though I'm a bit perplexed about fman; it seems to be such a slim application, which means that it should be fast as well.
Agreed. Objectively speaking, the only slim thing about fman to me is the functionality. It's 51 MB large (Python framework, not so important nowadays...) but is missing essential functions and yet people buy it and praise it in reviews. Platform independence is bought with performance, a bad trade off IMHO.
JayB wrote:
Mon Oct 16, 2017 6:04 pm
Fastest I've found so far is Rixstep Xfile – http://rixstep.com/4/0/xfile/ – but it has very rudimentary functionality, so in that regard it's no match for any of the other applications.
Also agreed, but as you said, not an OFM and therefore not considered.

For you guys interested, here's a quick-and-dirty video of my comparison. The MBP was just restarted, nothing else running. Simple timer and running applications shown.

https://www.dropbox.com/s/6f1ti8j7acu1p ... f-comp.mp4

The procedure is the same every time:

- start the app by double-clicking, same starting folder (/tmp) on both panels
- select test folder (10.000 files) with click
- press Enter (can be seen by KeyCastr overlay)
- Cmd+Q

Summary:

- NC has fastest startup time and opening folder time, almost no delay
- Followed by Marta, only slightly slower
- CRAX and Commander One noticeable delay of about 1 sec (CRAX has a annoying startup nag screen)
- fman has slowest startup time, takes over 30 seconds to load the folder. Unfortunately, QuickTime doesn't capture the actual spinning beachball but displays a plain cursor instead. Up and down keys were pressed so one can see when the UI is responsive again.

Again, not meant as a scientific benchmark (but I could reproduce it on a different MBP, same results). Merely a high five for Mike and his efficient coding.

JayB
Posts: 192
Joined: Sun Jan 08, 2017 4:38 pm

Re: A few thoughts on performance

Post by JayB » Tue Oct 17, 2017 1:36 pm

Thanks for the info; didn't know about fman and the python framework. I knew that the plugins need to be python, but the app itself, too? Gee, no wonder. Seems to be similar to all these Electron apps that keep popping up everywhere. Cross-platform, but bloated and slooow, so slow. Prefer a lean and mean ObjC app any time. ;) However, I like fman's plugin approach, and I also mentioned something similar as a possible extension for NC, but since NC still has access to the macOS Services, and also has its own Tools functionality, I think that should be sufficient.

warpkanal
Posts: 78
Joined: Mon Jan 30, 2017 5:24 pm

Re: A few thoughts on performance

Post by warpkanal » Tue Oct 17, 2017 7:15 pm

Also recently tried fman, too basic yet (even tabs are missing), BUT: the Cmd+P action is genius. After a short while it captured my favorite folders and I did not even miss a favorites menu as Cmd+P looked superiour. That would be a great feature for NC as well :)
If performance during runtime, e.g. with big folders is bad (haven't tried) I'm not sure whether it'll have a bright future...
(I don't care about startup times, I start my filemanager once and then only start it again if it crashed or if I need to reboot...)

Also tried marta: definitely a very promising filemanager, lacking a few features yet (but nothing too big), also having already a few features that NC doesn't have: e.g. plugins (ok there are only very few of them now), a nice actions menu (Cmd+Shift+P) and one feature important to me: ability to modify everything inside archives (even with the ability to modify archives inside archives, the last filemanager that could do this was TotalCommander when I was on windows many years ago ;) )

JayB
Posts: 192
Joined: Sun Jan 08, 2017 4:38 pm

Re: A few thoughts on performance

Post by JayB » Tue Oct 17, 2017 10:15 pm

The archive thing should be easy to implement. On the command line it's "zip -u" (files) and "zip -ur" (directories), so it seems to be built-in, and I don't why I couldn't be added to NC. 7zip also has this functionality. There are other tools as well, e.g. one to add password protection to an archive after-the-fact etc.

warpkanal
Posts: 78
Joined: Mon Jan 30, 2017 5:24 pm

Re: A few thoughts on performance

Post by warpkanal » Wed Oct 18, 2017 6:45 am

Hi JayB,

recall the discussion some months ago: http://magnumbytes.com/forum/viewtopic.php?f=6&t=205
I think Mike is right, it's not trivial, still I see it's working very well in marta :)

User avatar
mike
Posts: 1060
Joined: Thu Jul 16, 2015 5:35 am
Location: Exeter, UK

Re: A few thoughts on performance

Post by mike » Fri Oct 20, 2017 3:49 am

sasha wrote:
Mon Oct 16, 2017 3:35 pm
Bottom line: Great job with the efficient implementation, Mike. Thumbs up!
Thanks for interesting observations. The fun fact is that most of the time is spent in UI-related components, not in a stuff related to filesystems.
Pre-1.2.0 versions had a much more efficient UI implementation.
JayB wrote:
Tue Oct 17, 2017 10:15 pm
The archive thing should be easy to implement. On the command line it's "zip -u" (files) and "zip -ur" (directories), so it seems to be built-in, and I don't why I couldn't be added to NC. 7zip also has this functionality. There are other tools as well, e.g. one to add password protection to an archive after-the-fact etc.
I'll open the NC's source code later this year and will gladly accept any specific suggestions about adding support for archives modification ;)

PS
Is there any volunteer to revive the topic about an article on Wikipedia? http://magnumbytes.com/forum/viewtopic.php?f=4&t=291

warpkanal
Posts: 78
Joined: Mon Jan 30, 2017 5:24 pm

Re: A few thoughts on performance

Post by warpkanal » Fri Oct 20, 2017 9:58 pm

I'll open the NC's source code later this year and will gladly accept any specific suggestions about adding support for archives modification ;)
Oh, that's interesting news. Does that mean you see no commercial sense in the filemanager or maybe you won't have enough time for further development or other intentions?

JayB
Posts: 192
Joined: Sun Jan 08, 2017 4:38 pm

Re: A few thoughts on performance

Post by JayB » Fri Oct 20, 2017 11:52 pm

I'd leave the payment/license scheme as it is. Open source doesn't necessarily mean free or free-of-charge. :)

As for the zip thing, I just found this today, a zip library (ObjC & Swift): https://github.com/ZipArchive/ZipArchive
Functionality includes "Append to existing zip files", which probably also means e.g. removing a file from a zip archive.

Locked