Tagspaces import tags9/20/2023 It of should be batching operations efficiently to avoid needless loops, resulting in roughly the same required time to tag one as for tagging 100 files. If you have a large folder and try to apply tags to a lot of files, the whole app can be frozen in deep concentration for minutes to hours. It’s clearly doing each update one by one, causing the delays from point 1 above to snowball / accumulate. Selecting multiple files and then applying a tag to the whole selected group can be brutal bad.Efficient code would be time invariant in this respect. But do it in a folder with 75 files each with ~10 tags, and we’re punished with 20-30 seconds of waiting. What happens: If you change a tag on one file, with 3 items in the folder, it’s quite useable. Perhaps it’s even doing background tasks like updating the search index - in the foreground in a modal manner. It seems to be repeatedly doing something that is dependant upon a full rescan of all fles and/or the database, rather than just revising the one record in question. This points a smoking gun at a certain business logic area of the code. The amount of time it takes to update a single file’s tags seems proportional to the number of files in a folder.Good news is that I strongly suspect there are some low hanging fruit basic optimizations that could dramatically improve the product. The slow UI updates let one see step by step how it’s being so inefficient. In case it helps anyone, my intensive use of the app in the last week or two has yielded some insights. It’s been a bit of a struggle though, I won’t lie. I really like TagSpaces and am genuinely interested in helping make it better because it has a lot of promise in my opinion. (Meaning it wasn’t designed or intended for large datasets.) Or is it b) generally accepted that when handling a lot of tags and files, TagSpaces will bog down. (Meaning windows and mobile versions of the app are highly performant with large datasets.) My laptop is only a year old, high spec, and i use it to edit video, play 3d games on steam, etc… Everything I do in Linux is blazing fast, except, sadly, TagSpaces…Ī) A known issue, already understood to be limited to the Electron implementation for MacOS & Linux. But of course these’ aren’t operating in an Electron container… I don’t have much experience with Electron or LevelDB, so don’t know what to expect or what is possible. (I know because I now use it a lot as a workaround.) And opening a folder of 1,000 images (after wiping the system’s thumbnail cache) takes just a few seconds to generate thumbnails and is non-blocking to the UI. It’s visualization capabilities are super valuable still to proof the tags, even if it takes 20 second to load 60 items into the grid viewīut… taking so long to rename a few files and refresh the LevelDB makes the functional yet inefficient code start to feel like a bug…Īs a benchmark: Krename on my system can rename ~3,000 files in a bit more than a second. Tagging a group of 20+ files takes enough time for one to take a coffee break, forcing me now to only use TagSpaces to audit / QC tags I apply to file names externally. Even with only 20 items visible, I can only get the delay when tagging a file down to ~3 seconds rather than 5-10 seconds when more items are visible. I’ve witnessed a steady increase in UI lag. That file is essentially a json dictionary ( which is not something regular users should care about, but it's convenient for programmers :) ).I’m running 5.0.5 on Linux, I’m now up to ~400 tags defined in ~10 tag groups, applied to several thousand files using file names not sidecars. The script records everything in ~/.tagged_files. Note:Avoid having "|" symbol in the tag name. Next time, when you already have some files tagged, you will see a popup that allows you to select a tag and/or add new one ( this way you can record files under multiple tags). Hit Enterįirst time you run this script, there will be no configuration file, so you will see this: Select files in Nautilus file manager, right click on them, and navigate to Scripts submenu. Install nautilus_scripts-master/read_tags.py "$N_SCRIPTS/read_tags.py" Install nautilus_scripts-master/tag_file.py "$N_SCRIPTS/tag_file.py" N_SCRIPTS="$HOME/.local/share/nautilus/scripts" For easy installation, use the following bash script: #!/bin/bash Installationīoth scripts have to be saved to ~/.local/share/nautilus/scripts, where ~ is user's home directory, and made executable with chmod +x filename. The source code for each script is provided here as well as on GitHub 2. Both have to live in ~/.local/share/nautilus/scripts and activated via right-click in Nautilus file manager on any file, and navigating to Scripts submenu. This solution consists of two scripts - one for tagging, one for reading the list of files under specific tag.
0 Comments
Leave a Reply.AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |