Answer the question
In order to leave comments, you need to log in
How to remove the delay of an overloaded CPU?
I noticed that if the application executes a certain continuous cycle without pauses, thus loading the entire core, then one iteration of this cycle takes longer on average than if a pause is placed in the cycle, or iteration occurs on a signal. Apparently, the core is choking, creating large delays that affect the average. Is it possible to fight this somehow? The sleep(1) option is not desirable because the pause is too long.
Answer the question
In order to leave comments, you need to log in
Ээммм, пишете очень странное. Почитайте про то как работает планировщик операционной системы и как он распределяет процессорное время.
Сами подумайте как такое может быть? Вот у вас есть процесс, он использует ресурсы железа которые ему выделела ОС. В каждый транк времени ОС выделяет какому то процессу все ресурсы, чем больше транков именно этому процессору достаётся - тем больше ресурсов железа он может утилизировать, тем быстрее выполнится. Транк закончился, ОС сбрасывает состояние процесса в регистры и отдаёт процессор и другие ресурсы следующему процессу и так по кругу. Как в такое логике пауза в работе ему поможет?
This is possible only in a situation where any component used by this process degrades in performance at maximum load. This is possible with a disk, the rest of the system usually works the same regardless of the load (how much the processor does not use, it works, how much RAM it does not take, it works, the network gives everything that is there).
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question