Autor Téma: jak blokovat úsporné fce procesorů  (Přečteno 8832 krát)

zbelunek

  • Host
jak blokovat úsporné fce procesorů
« kdy: 07-11-2012, 08:23:49 »
Zdravím,
při trvalém čtení a zpracování dat z usb nebo hdd několika procesy zvyšuje rychlost aplikace běžící Winamp(nebo jakýkoliv mediaplayer) a to až 10x. Pozoroval jsem to jen na Intel cpu, u AMD X2 ne. Mám Win Vista64, Intel Core2 Duo, Delphi 7. V Biosu jsem vypnul spořící fce jako eist a c_states, chéma napájení mám na vysoký výkon.
Zatím jsem našel jen 2 možnosti, jak udržet cpu v plném výkonu, 1. TMediaPlayer schovaný s otevřeným wav(nemusí hrát), 2. Přidat 2 thready s trvale běžícím cyklem.
Víte o něčem rozumnějším?

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3481
  • Karma: 112
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:jak blokovat úsporné fce procesorů
« Odpověď #1 kdy: 07-11-2012, 08:29:06 »
Nastavit si pro svůj process větší prioritu? WinAmp to např. umožňuje. Ale podle mne je to nefér. Navíc moderní procesory by to měly zvládnout sami - jako nastavit větší výkon.
Pokud ti nepomůže nastavení napájení ve Windows - použij jiný program, např. RMClock.
Embarcadero MVP - Czech republic

zbelunek

  • Host
Re:jak blokovat úsporné fce procesorů
« Odpověď #2 kdy: 07-11-2012, 08:59:55 »
Priorita nepomáhá. Zvláštní je, že vytížení cpu ve Správci úloh je do 5%, přestože program běží naplno a v podstatě nestíhá. Zapnutím winampu se zvýší na 10%, a program zpracuje 10x více dat.
RMClock zkusím

zbelunek

  • Host
Re:jak blokovat úsporné fce procesorů
« Odpověď #3 kdy: 07-11-2012, 10:46:41 »
Zkoušel jsem RMClock, taky nepomhlo zapnutí profilu s maximálním výkonem, na zapnutí profilu power sawing opravdu výkon hodně klesl. Podle jeho monitoringu se tam nic nepodtaktovává.
Ještě doplním, že se to děje i na WinXP.
Tak už mě napadá jen to, že by se nějak zpomalovala sběrnice k usb/sata. Ale nechápu, jak to ovlivní přehrávač medií.

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 3481
  • Karma: 112
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:jak blokovat úsporné fce procesorů
« Odpověď #4 kdy: 07-11-2012, 11:00:50 »
A zkousel jsi si programově zvednout prioritu?
Embarcadero MVP - Czech republic

zbelunek

  • Host
Re:jak blokovat úsporné fce procesorů
« Odpověď #5 kdy: 07-11-2012, 11:48:10 »
JJ, zkousel jsem v MainForm.Create pridat SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS), taky nepomaha.

Offline Mi.Chal.

  • Guru
  • *****
  • Příspěvků: 577
  • Karma: 25
Re:jak blokovat úsporné fce procesorů
« Odpověď #6 kdy: 07-11-2012, 12:47:22 »
Priorita nepomáhá. Zvláštní je, že vytížení cpu ve Správci úloh je do 5%, přestože program běží naplno a v podstatě nestíhá. Zapnutím winampu se zvýší na 10%, a program zpracuje 10x více dat.
RMClock zkusím

to mi přijde dost zvláštní - jestli to ukazuje vytížení 10%, tak ta aplikace naplno neběží a brzdí to něco jiného než cpu. Zkus tam dát třeba nekonečný cyklus provádějící třeba jenom násobení, pak bys měl mít vytížení kolem 100% na jedno jádro. CPU dneska mění frekvenci a napájení dynamicky podle zátěže (řídí to nejspíš OS), takže pokud se nic neděje, tak to jede na nižší frekvenci. Aplikaci ti nejspíš brzdí něco jiného než CPU.

zbelunek

  • Host
Re:jak blokovat úsporné fce procesorů
« Odpověď #7 kdy: 07-11-2012, 14:04:45 »
Ano, nekonečný cyklus vytíží jádro na 100% a program díky tomu zpracuje více dat, ale to už se mi více líbí mít schovaný přehrávač s otevřenou mp3. Ty spořící fce mám pokudvím vyplé, viz. výše pokusy s RMClock.
To malé vytížení cpu je asi kvůli tomu, že mi tam běží několik threadů, které se pravidelně zpomalují pomocí sleep(0), případně čekají na event nebo na kritickou sekci.