Forum Delphi.cz

Win32 a Win64 => Obecné => Téma založeno: zbelunek 07-11-2012, 08:23:49

Název: jak blokovat úsporné fce procesorů
Přispěvatel: zbelunek 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?
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: Radek Červinka 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.
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: zbelunek 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
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: zbelunek 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í.
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: Radek Červinka 07-11-2012, 11:00:50
A zkousel jsi si programově zvednout prioritu?
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: zbelunek 07-11-2012, 11:48:10
JJ, zkousel jsem v MainForm.Create pridat SetPriorityClass(GetCurrentProcess, HIGH_PRIORITY_CLASS), taky nepomaha.
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: Mi.Chal. 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.
Název: Re:jak blokovat úsporné fce procesorů
Přispěvatel: zbelunek 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.