Is it me, or does the indexer have a lower CPU priority now?

Mark Barnes
Mark Barnes Member Posts: 15,432 ✭✭✭
edited November 2024 in English Forum

It seems to me that indexing hogs system resources far less than it used to. I can't tell if this is because the indexer is set to a low priority, or whether there's some throttling going on, but either way, I like it. I can actually work whilst indexing is taking place now!

This is my personal Faithlife account. On 1 March 2022, I started working for Faithlife, and have a new 'official' user account. Posts on this account shouldn't be taken as official Faithlife views!

Comments

  • Kevin Becker
    Kevin Becker Member Posts: 5,604 ✭✭✭

    I got a new laptop yesterday (Cord Duo 2.2GHz; 4 GB Ram) and indexing was running my processor at 95-100% most of the time. However, I was able to surf the web on Firefox w/o any noticeable drag, it seem to gracefully allow other programs to use the processor when needed.

  • Rick
    Rick Member Posts: 2,020 ✭✭✭

    If in the future you have problems or simply want to change its priority, open your task manager, find Logos Indexer and right click. You will be able to set its priority here. I like giving it a higher priority so it will hurry up and get done!

     

  • Tony Garland
    Tony Garland Member Posts: 64 ✭✭

    I think it would be nice if the indexer defaulted to "BelowNormal" or even "Low" because on more limited machines (e.g., my Samsung netbook) indexing really gets in the way of Logos 4 performance--which is already challenged running on the machine.

    I think it would be very helpful to add a checkbox under Tools>Settings>Program Settings which says:

    [x] Index at low priority.

  • Bradley Grainger (Logos)
    Bradley Grainger (Logos) Administrator, Logos Employee Posts: 12,191

    I think it would be nice if the indexer defaulted to "BelowNormal" or even "Low" because on more limited machines (e.g., my Samsung netbook) indexing really gets in the way of Logos 4 performance--which is already challenged running on the machine.

    The Process priority is Normal, but all indexing threads already run at the "ThreadPriority.Lowest" priority level.

  • Tony Garland
    Tony Garland Member Posts: 64 ✭✭

    The Process priority is Normal, but all indexing threads already run at the "ThreadPriority.Lowest" priority level.

    Thanks for the clarification Bradley.

    I still think it would be nice to be able to demote the indexer process priority because a person is almost never using Logos 4 in isolation, but often ALT-TABing between Logos and document editor (or other bible software which does certain tasks more efficiently than Logos) so the overall machine performance is still unnecessarily bogged down during indexing.

    For some people with challenged machines, what they really are after is "index using spare CPU cycles when I'm not actively interacting with the machine."  It is generally poor UI design to sacrifice the overall responsiveness of the machine to run a "background" process which, in this case, generally takes hours (and hours) to finish its job anyway.

  • Tony Garland
    Tony Garland Member Posts: 64 ✭✭

    To clarify: my understanding of the thread priority is that it is relative to  the containing process priority.

    ". . . threads running in [non-realtime] priority classes are
    variable, meaning that the thread's priority can change while the
    thread is running. For threads in the Normal or High priority classes
    (priorities 1 through 15), the thread's priority can be raised or
    lowered by up to a value of 2 but cannot fall below its original,
    program-defined base priority.
    " [emphasis mine]

    http://technet.microsoft.com/en-us/library/cc940378.aspx

  • George Allakhverdyan
    George Allakhverdyan Member Posts: 1,075 ✭✭✭


    The Process priority is Normal, but all indexing threads already run at the "ThreadPriority.Lowest" priority level.

    Thanks for the clarification Bradley.

    I still think it would be nice to be able to demote the indexer process priority because a person is almost never using Logos 4 in isolation, but often ALT-TABing between Logos and document editor (or other bible software which does certain tasks more efficiently than Logos) so the overall machine performance is still unnecessarily bogged down during indexing.

    For some people with challenged machines, what they really are after is "index using spare CPU cycles when I'm not actively interacting with the machine."  It is generally poor UI design to sacrifice the overall responsiveness of the machine to run a "background" process which, in this case, generally takes hours (and hours) to finish its job anyway.


    This process has been optimized dramatically over the past releases and will continue to improve. It may be inconvenient that the machine slows down during this but it is the small price to pay for lightning quick searches afterward. The indexing process requires a lot of cpu - thus it is recommended to index when you aren't using your computer, that is why there is the option to pause the indexer for 4 hours.

  • Tony Garland
    Tony Garland Member Posts: 64 ✭✭

    This process has been optimized dramatically over the past releases and will continue to improve. It may be inconvenient that the machine slows down during this but it is the small price to pay for lightning quick searches afterward. The indexing process requires a lot of cpu - thus it is recommended to index when you aren't using your computer, that is why there is the option to pause the indexer for 4 hours.

    I can appreciate that indexing has improved and will continue to improve.  But why should the user have to mess around telling the computer when to index and when not too?  Isn't that what process priorities are for?  A single option of "[x] Index at lowest priority" would be easy to implement and thereafter users who care more about using their computers in a responsive manner than having the absolute latest indexing done could 'set and forget' about it.

    For myself, as soon as indexing starts up, I go ahead and enter task manager and manually set it to lowest.  Why? Because my use of the machine is intermittent and I don't want to have to remember to 'disable for 4 hours' and 'reenable'.  Instead, the machine automatically gives me full horsepower when I'm actively using it and goes back to efficient indexing whenever I stop interacting.

    All I'm suggesting is that this should be the default way it operates--or at least make it configurable that way as an option.  Saying that users have to pay a price for fast searches missing the point.  I'm not questioning the value of up-front indexing (something I myself suggested on the forums years and years ago). But I'm convinced users can have their cake (a responsive computer when using it actively) and eat it too (eventually have a completed index).  Basically this approach defers indexing until periods when the computer is not actively in use--without the need of manually enabling/disabling indexing by way of the tray icon.

    Guess I've beat this dead horse . . . [:D]

  • George Allakhverdyan
    George Allakhverdyan Member Posts: 1,075 ✭✭✭

    Instead, the machine automatically gives me full horsepower when I'm actively using it and goes back to efficient indexing whenever I stop interacting.

    I've actually suggested this as a separate feature to the indexer - it would be cool if the indexer knew when you weren't using your cpu intensively and when you were and react to it appropriately instead of having a static wait 4 hours option. I do believe this feature is at most "Nice to have" so it *could* pop-up in a future release [:)]

     

  • Tony Garland
    Tony Garland Member Posts: 64 ✭✭

    it would be cool if the indexer knew when you weren't using your cpu intensively and when you were and react to it appropriately instead of having a static wait 4 hours option.

    Yep - that would be great.  The standard control panel "scheduled tasks" have a tab which is similar and includes checkboxes for:

    [x] Only start the task if the computer is idle for . . .

    [x] Stop the task if the  computer ceases to be idle

    So maybe simply converting the Logos indexer over to be a scheduled task with the generic controls would allow this. (On the other hand, that isn't  a very platform-neutral solution.)