Skip to content

Nemo 4.4.2 thumbnailing performance #2291

Open
@smurphos

Description

@smurphos
 * Nemo version 4.4.2
 * Is issue with desktop or windowed nemo? Window
 * Distribution - Mint 19.3

The test machine

steve@steve-Inspiron-5580:~$ inxi -SDMGCmxxxz
System:    Host: steve-Inspiron-5580 Kernel: 5.0.0-37-generic x86_64 bits: 64 compiler: gcc v: 7.4.0 
           Desktop: Cinnamon 4.4.6 wm: muffin 4.4.2 dm: LightDM 1.26.0 Distro: Linux Mint 19.3 Tricia 
           base: Ubuntu 18.04 bionic 
Machine:   Type: Laptop System: Dell product: Inspiron 5580 v: N/A serial: <filter> Chassis: type: 10 
           serial: <filter> 
           Mobo: Dell model: 0K0DFT v: A00 serial: <filter> UEFI: Dell v: 2.4.0 date: 07/02/2019 
Memory:    RAM: total: 7.51 GiB used: 1.19 GiB (15.9%) 
           RAM Report: permissions: Unable to run dmidecode. Root privileges required. 
CPU:       Topology: Quad Core model: Intel Core i5-8265U bits: 64 type: MT MCP arch: Kaby Lake rev: B 
           L2 cache: 6144 KiB 
           flags: lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 28800 
           Speed: 800 MHz min/max: 400/3900 MHz Core speeds (MHz): 1: 800 2: 800 3: 800 4: 800 5: 801 6: 800 7: 800 
           8: 800 
Graphics:  Device-1: Intel vendor: Dell driver: i915 v: kernel bus ID: 00:02.0 chip ID: 8086:3ea0 
           Display: x11 server: X.Org 1.20.4 driver: modesetting unloaded: fbdev,vesa resolution: 1920x1080~60Hz 
           OpenGL: renderer: Mesa DRI Intel UHD Graphics (Whiskey Lake 3x8 GT2) v: 4.5 Mesa 19.0.8 compat-v: 3.0 
           direct render: Yes 
Drives:    Local Storage: total: 1.14 TiB used: 882.34 GiB (75.4%) 
           ID-1: /dev/nvme0n1 vendor: Toshiba model: KBG40ZNS256G NVMe 256GB size: 238.47 GiB speed: 31.6 Gb/s 
           lanes: 4 serial: <filter> rev: 10410101 scheme: GPT 
           ID-2: /dev/sda type: USB vendor: Seagate model: Expansion size: 931.51 GiB serial: <filter> rev: 060E 
           scheme: MBR 

Issue

I reported during the beta Nemo being killed by the OOM controller whilst thumbnailing a folder of 21K image symlinks on a limited ram (2GB) virtual machine and have noted thumbnailing related performance issues for sometime. Several open issues regarding nemo peformance in general I think are related to thumbnailing and also memory use of nemo when navigating folders which large numbers of already thumbnailed images. I thought it might be helpful to try and benchmark some behaviour. These tests are done on the host machine specs above. The folders are on the SSD.

Test 1 - Thumbnail generation on a folder of 1000 jpg images in icon view at maximum zoom

Directory info

steve@steve-Inspiron-5580:~$ gio info /home/steve/Nemo_Test/1000_pics | grep metadata
  metadata::nemo-default-view: OAFIID:Nemo_File_Manager_Icon_View
  metadata::nemo-icon-view-zoom-level: 6
steve@steve-Inspiron-5580:~$ du --si ~/Nemo_Test/1000_pics
3.0G	/home/steve/Nemo_Test/1000_pics

Baseline ps aux output for nemo after running nemo -q; nemo

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    30633  6.9  1.0 1012356 82188 pts/0   Sl+  10:07   0:01 nemo

Then quit nemo, cleared the thumbnail cache and restarted nemo directly on the target folder.

steve@steve-Inspiron-5580:~$ nemo -q
steve@steve-Inspiron-5580:~$ rm -r ~/.cache/thumbnails
steve@steve-Inspiron-5580:~$ NEMO_BENCHMARK_LOADING=1 nemo /home/steve/Nemo_Test/1000_pics

** (nemo:28710): WARNING **: 10:12:55.113: Current gtk theme is not known to have nemo support (Cinnamox-Rhino) - checking...
Initializing nemo-image-converter extension
Nemo startup time: 1.133658 seconds
Folder load time: 0.396640 seconds
Idle...Folder load time: 0.567926 seconds

Nemo remained responsive and allowed me to scroll up and down the folder a little during thumbnailing.

ps aux output for nemo having thumbnailed all pics

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    28710 82.2  8.1 1547796 642060 pts/0  Sl+  10:12   1:43 nemo /home/steve/Nemo_Test/1000_pics

ps aux output for nemo having navigated back to parent folder

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    28710 31.7  1.8 1013740 147792 pts/0  Sl+  10:12   1:46 nemo /home/steve/Nemo_Test/1000_pics

ps aux output for nemo displaying the thumbnailed folder again.

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    28710 29.6  5.5 1310380 439148 pts/0  Rl+  10:12   1:57 nemo /home/steve/Nemo_Test/1000_pics

Load times on 2nd view

Folder load time: 5.327696 seconds
Idle...Folder load time: 5.424941 seconds

Then quit nemo and reopened.

steve@steve-Inspiron-5580:~$ NEMO_BENCHMARK_LOADING=1 nemo /home/steve/Nemo_Test/1000_pics

** (nemo:5955): WARNING **: 10:24:25.737: Current gtk theme is not known to have nemo support (Cinnamox-Rhino) - checking...
Initializing nemo-image-converter extension
Nemo startup time: 6.736869 seconds
Folder load time: 5.945852 seconds
Idle...Folder load time: 6.042008 seconds

ps aux output for nemo displaying the thumbnailed folder from a fresh start

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve     5955 42.7  5.2 1275420 410260 pts/0  Sl+  10:24   0:44 nemo /home/steve/Nemo_Test/1000_pics

I then had a quick look at the thumbnail cache and notes that the time difference between the first and last thumbnail produced was 1m 34 seconds.

Test 2 - Thumbnail generation on a folder of 5000 images

Directory info

steve@steve-Inspiron-5580:~$ gio info /home/steve/Nemo_Test/5000_pics | grep metadata
  metadata::nemo-default-view: OAFIID:Nemo_File_Manager_Icon_View
  metadata::nemo-icon-view-zoom-level: 6
steve@steve-Inspiron-5580:~$ du --si ~/Nemo_Test/5000_pics
15G	/home/steve/Nemo_Test/5000_pics

Then quit nemo, cleared the thumbnail cache and restarted nemo directly on the target folder.

steve@steve-Inspiron-5580:~$ NEMO_BENCHMARK_LOADING=1 nemo /home/steve/Nemo_Test/5000_pics

** (nemo:22298): WARNING **: 10:37:50.665: Current gtk theme is not known to have nemo support (Cinnamox-Rhino) - checking...
Initializing nemo-image-converter extension
Nemo startup time: 2.115366 seconds
Folder load time: 1.362390 seconds
Idle...Folder load time: 1.621272 seconds

** (gdk-pixbuf-thumbnailer:14550): WARNING **: 10:40:50.355: Could not thumbnail 'file:///home/steve/Nemo_Test/5000_pics/Family_080223_230.JPG': Error interpreting JPEG image file (Not a JPEG file: starts with 0x00 0x00)

(nemo:22298): CinnamonDesktop-WARNING **: 10:40:50.357: Error creating thumbnail for file:///home/steve/Nemo_Test/5000_pics/Family_080223_230.JPG: Error interpreting JPEG image file (Not a JPEG file: starts with 0x00 0x00)

** (gdk-pixbuf-thumbnailer:14553): WARNING **: 10:40:50.428: Could not thumbnail 'file:///home/steve/Nemo_Test/5000_pics/Family_080223_231.JPG': Error interpreting JPEG image file (Not a JPEG file: starts with 0x00 0x00)

(nemo:22298): CinnamonDesktop-WARNING **: 10:40:50.428: Error creating thumbnail for file:///home/steve/Nemo_Test/5000_pics/Family_080223_231.JPG: Error interpreting JPEG image file (Not a JPEG file: starts with 0x00 0x00)

ps aux output for nemo having thumbnailed all pics

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    22298 89.6 23.7 2758336 1866576 pts/0 Sl+  10:37  13:09 nemo /home/steve/Nemo_Test/5000_pics

Thumbnailing took about 13 minutes. Nemo became unresponsive towards the end of the process and didn't recover so I was forced to nemo -q

I then reloaded the folder.

steve@steve-Inspiron-5580:~$ NEMO_BENCHMARK_LOADING=1 nemo /home/steve/Nemo_Test/5000_pics

** (nemo:19151): WARNING **: 10:55:26.031: Current gtk theme is not known to have nemo support (Cinnamox-Rhino) - checking...
Initializing nemo-image-converter extension
Nemo startup time: 27.819082 seconds
Folder load time: 26.968501 seconds
Idle...Folder load time: 27.900667 seconds

ps aux output for nemo displaying the thumbnailed folder from a fresh start

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    19151  105 21.2 2615300 1673416 pts/0 Rl+  10:55   1:07 nemo /home/steve/Nemo_Test/5000_pics

There was no lockup this time so I navigated to the parent folder and back again
ps aux output for nemo having navigated back to parent folder

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    19151  103  4.8 1324892 382804 pts/0  Sl+  10:55   3:06 nemo /home/steve/Nemo_Test/5000_pics

Loading of the pics folder was excessive this time and nemo was unresponsive once loading at finished

Folder load time: 167.125083 seconds
Idle...Folder load time: 183.289171 seconds

ps aux output for nemo displaying the thumbnailed folder again.

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    19151 92.7 22.5 2714828 1772496 pts/0 Rl+  10:55   8:57 nemo /home/steve/Nemo_Test/5000_pics

I then quit nemo with nemo-q and then reopened to check the thumbnail cache. The time difference between the oldest and newest thumbnail was 10m 34 seconds.

Test 3 - The effect of toggling thumbnail visibility on an already thumbnailed folder.

I did this test on the 1000 pic directory given the lock-ups experienced just thumbnailing the 500 pic directory. First I opened the directory in nemo and allowed it to complete thumbnailing before quiting nemo. Then opened the folder from a fresh start.

steve@steve-Inspiron-5580:~$ NEMO_BENCHMARK_LOADING=1 nemo /home/steve/Nemo_Test/1000_pics

** (nemo:29637): WARNING **: 11:16:41.953: Current gtk theme is not known to have nemo support (Cinnamox-Rhino) - checking...
Initializing nemo-image-converter extension
Nemo startup time: 6.781645 seconds
Folder load time: 6.008563 seconds
Idle...Folder load time: 6.013613 seconds
steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    29637  107  5.2 1355564 412516 pts/0  Rl+  11:16   0:44 nemo /home/steve/Nemo_Test/1000_pics

I then toggled thumbnail visibility to off

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    29637 60.9  2.9 1159900 230652 pts/0  Sl+  11:16   0:46 nemo /home/steve/Nemo_Test/1000_pics

Then back on. There was quite a lengthy delay before all thumbnails were reloaded.

teve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    29637 61.4  7.6 1603940 602520 pts/0  Sl+  11:16   1:47 nemo /home/steve/Nemo_Test/1000_pics

Noting the increased RAM usage I then toggled off again

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    29637 49.1  3.0 1173596 242400 pts/0  Sl+  11:16   1:53 nemo /home/steve/Nemo_Test/1000_pics

And back on

steve@steve-Inspiron-5580:~$ ps aux | grep nemo |grep -Ev "grep|desktop"
steve    29637 56.7  7.2 1561980 573360 pts/0  Rl+  11:16   3:05 nemo /home/steve/Nemo_Test/1000_pics

Hopefully this is helpful info in identifying bottlenecks. I was disappointed to find that 5000 pics was enough to lock up nemo entirely as I don't think that is a particularly extreme number of pictures to have in a folder.

I'll keep the the two test folders as is so if there in any further testing that would be helpful let me know.

Related open issues - #2245, #1907

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions