Skip to content

Nemo 4.4.2 thumbnailing performance #2291

@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

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions