"Show only selected persons" function breaks People filter

Started by cg, January 21, 2024, 09:40:50 PM

Previous topic - Next topic

cg

Hello, Mario.

The relatively new (and useful) "Show only selected persons" checkbox at the bottom of the People filter doesn't seem to function in the current version of iMatch. The box doesn't check at all, and after clicking it, the People filter scrollbar no longer scrolls and the filter no is no longer responsive. Sometimes, after clicking away from Filter and back, the People filter drop down is completely empty. This behavior is reproduced every time I try to click the "Show only selected persons" checkbox.

Thanks!

Mario

I've tried to reproduce this but could not.

First I've created a scope with many files and persons so there is actually a scroll bar displaying in the People Filter.
No I select 15 persons and the File Window updates after I select each person to show only the files from the currently selected persons.

Now I enable the "Show only selected persons" to reduce the list of persons shown in the list to 15.
I can still scroll the Filter Panel and I can scroll the person list in the People filter using the mouse wheel or the scroll bars.

The only thing I noticed is a short period of slow responsiveness when I actually enable/disable the people filter. This is a computationally expensive filter, and the more files there are in the scope and the more persons are selected, the more work has to be done.

Another short period of slow response is when I disable the "Show only" option, since the People Filter has to reload all persons (300 in my test database) and repopulate the list. This takes less than a second or so.

When I enable/disable the filter, the scope changes. This produces a "new" list of persons in the scope and the People Filter has to reload and to reload all files or filter out persons not selected. This might take a bit of time, especially in a scope with many files and/or persons.

How many persons do you have in your database and how large was the scope you are working on?
Big difference between 50 or 500 persons or scopes with 100 or 50,000 files.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

Tveloso

I also notice a little bit of a delay when checking the Show only selected persons checkbox in the People Filter.

For me, the delay happens only when clicking to check the checkbox (unchecking it is pretty much immediate).  Clicking to check the Show only option takes just under 3 seconds for my database...and this delay is the same regardless of the FileWindow Scope being filtered.  It seems logical that it's the number of persons in the database that influences this.  My database contains 396 Persons.

The  Show only checkbox is of course not checkable if no entries in the persons list have been checked, and I've made the mistake of thinking that it was not working in that instance...perhaps the OP made the same mistake?...

--Tony

cg

Hi, Mario.

I have 902 persons in my database. Upon further testing, it seems as though it takes 15 seconds once the "Show only selected persons" checkbox is checked for the filter to update. This delay is consistent no matter how many or few files are in the scope or faces checked or unchecked in the People filter list.

Though the rest of the interface is responsive during the 15 second delay, I believe if I click something else without waiting for the filter update, it will cause the entire People filter to be empty.

This delay did not occur when that checkbox feature was first introduced, at least to that extent, and number of persons in my database has not increased that much since then.

My test database with only 175 persons reacts almost immediately when the checkbox is checked.

Another thing I noticed while testing this is that when the "Show only selected persons" is active and all of the selected people are unchecked, the state stays active but grayed out with (0) active persons (screen grab attached). There seems to be no way to make the checkbox clickable again, so in that state, the People filter becomes effectively disabled. It seems like the checkbox should uncheck itself if no people are selected in the filter.

Thanks!



Mario

QuoteI have 902 persons in my database.
This might be the explanation of this phenomenon right away.

The average number of persons managed in IMatch is 50, when I recall correctly (did not check stats for a while). I try to make IMatch fast, but try not to spend to much time on dealing with edge cases.

If you manage 20 times the number of persons than the average IMatch user, there will be some effects on performance. I have never anticipated in the design that users would manage more than 100 or maybe 200 persons, tops. Families, teams, clubs etc. Managing almost a 1,000 persons is definitely unusual.
I might have a look at improving the filter when there is time, but I doubt that I will spend a lot of time on this.

I will look into the "uncheck" issue.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

janb83

Quote from: Mario on January 22, 2024, 09:15:43 AM
QuoteI have 902 persons in my database.
This might be the explanation of this phenomenon right away.

The average number of persons managed in IMatch is 50, when I recall correctly (did not check stats for a while). I try to make IMatch fast, but try not to spend to much time on dealing with edge cases.

If you manage 20 times the number of persons than the average IMatch user, there will be some effects on performance. I have never anticipated in the design that users would manage more than 100 or maybe 200 persons, tops. Families, teams, clubs etc. Managing almost a 1,000 persons is definitely unusual.
I might have a look at improving the filter when there is time, but I doubt that I will spend a lot of time on this.

I will look into the "uncheck" issue.

I know you mentioned this in the past, and it seems you are basing this on telemetry, but I don't see why you think a number like this is unusual at all. Is your telemetry possibly skewed because it includes people who don't use the feature at all or only to tag themselves? Professional photographers managing their client project work in IMatch probably don't use the feature at all.

1000 persons is nothing when actually tagging a private photo collection. It is quite normal for a wedding to have up to 200 guests and that only includes living inner family and current friends at a single point in time. With social contact fluctuations over your lifetime, photos from previous generations or more distant relatives, second marriages, work contacts from several jobs, contacts from hobbies or sports, former classmates, friends outside of the inner circle you might invite  etc etc. you will easily surpass that number during your lifetime.

And that's just one average person. If your collection also includes the full archive of a spouse or even your brothers/sisters, it will multiply. And some persons meet a lot more people due to their work, and they might actually want to tag them so they still remember the name 50 years from now.

Mario

I can only base decisions on the telemetry data I get.

If there are dozens or hundreds of IMatch users out there with the same number of persons you manage and they don't participate in telemetry, I cannot know. But I guess then these users would face the same performance issue you just reported and we would see more bug reports about this!?
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook

cg

Hi, Mario.

The feature I reported on above was only introduced last October, and at the time, my database would have had a similar number of people but no noticeable performance issue when I used it. I know that several optimizations have been done to some of the people functionality since then, and I'm just wondering if an optimization in one place may have had an unintended consequence in another.

Does the checkbox we're talking about iterate through all of the people, or only through the list of people in the scope? It seems to have the same delay no matter how few people are in the scope.

Thanks!



Mario

I have made some experiments with my special 1,200 person database and I could improve the performance considerably for databases with hundreds of even thousands of persons by adding a special branch for this case.

I've also fixed the problem that the "Show only..." check box becomes disabled when the last selected person is unchecked.
-- Mario
IMatch Developer
Forum Administrator
http://www.photools.com  -  Contact & Support - Follow me on 𝕏 - Like photools.com on Facebook