Neukazuje se maximální a minimální spotřeba procesoru ve schématu



Zdravím. Mám problém,že se mi v možnostech napájení-změnit nastavení schématu-změnit pokročilé nastavení napájení-řízení spotřeby procesoru neukazuje maximální a minimální spotřeba procesoru (v procentech). Zmizelo to z nabídky ze dne na den. Mám windows 8.1
A den před tím? Bylo aktualizováno, instalován nějaký SW co si něco přidal pod OS, nebyla v aktualizaci i nějaká k ovladačům*? Když se vrátíš bodem obnovy stane se něco?\_* Ty je vždy lepší aktualizovat (je-li to vůbec nutné) ručně, nenechat OS.
<p>nezapomeňte, že zatímco monitor může být větší než 800x600, okno prohlížeče nemusí být na celou obrazovku.</p><p>například běžím na monitorech lcd s rozlišením 1600x1200 (stále poměrně velké), ale mé okno prohlížeče je přibližně 1100x1200 (přibližně).</p><p>musíte se tedy podívat na nejběžnější rozlišení <em>prohlížeč</em>, nikoli na nejběžnější rozlišení <em>obrazovka</em>.</p> <p>přesně jako starý indikátor gnome: <a href="http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more">http://www.webupd8.org/2011/05/network-memory-and-cpu-usage-indicator.html#more</a> </p><p>poznámka z odkazu: <strong> po instalaci spusťte indikace zatížení systému z dash. </strong> na rozdíl od starých appletů gnome takto přidáte tyto indikátory na panel.</p> Už jste se snažil změnit cílovou CPU `x86`místo `"Any CPU"`v pokročilých možnostech kompilátoru? Vím, že to řeší některé problémy s ostatními `OLEDB`poskytovateli vynucením použití 32-bitové verzi. <p><strong> poznámka: </strong> <em>toto bylo testováno na notebooku s grafickou kartou řízenou i915.</em></p><hr><h3>pozadí</h3><p><strong> poznámka: </strong> když je připojena nová obrazovka, do hostitele není odeslána žádná událost, zůstane to pravda i po mé poslední úpravě. jediným způsobem je tedy použít dotazování. snažím se, aby byly co nejefektivnější ...</p><h3>úprava # 3</h3><p>nakonec existuje jedno lepší řešení (prostřednictvím acpi):</p><p>stále neexistuje žádná událost, ale acpi se zdá být efektivnější než <code>xrandr</code> na dotaz. (poznámka: toto <strong> vyžaduje </strong> načtené moduly jádra acpi, ale nevyžaduje oprávnění root.</p><p>moje konečné řešení (pomocí bash):</p><pre><code>isvgaconnected() { local crtstate read -a &lt; /proc/acpi/video/vid/crt0/state crtstate test $(( ( ${crtstate[1]} &gt;&gt;4 ) ${1:+*-1+1} )) -ne 0 } </code></pre><p>nyní test:</p><pre><code>$ if isvgaconnected; then echo yes; else echo no; fi yes </code></pre><p>je zapojen, takže ho nyní odpojím:</p><pre><code>$ if isvgaconnected; then echo yes; else echo no; fi no </code></pre><p><strong> poznámka: </strong> <code>${1:+*-1+1}</code> povolit argument <em>boolean</em>: pokud <em>něco je přítomno</em>, odpověď by byla obrácena: <code>( crtstate &gt;&gt; 4 ) * -1 + 1</code>.</p><p>a závěrečný skript:</p><pre><code>#!/bin/bash export crtprocentry=/proc/acpi/video/vid/crt0/state isvgaconnected() { local crtstate read -a &lt; $crtprocentry crtstate test $(( ( ${crtstate[1]} &gt;&gt;4 ) ${1:+*-1+1} )) -ne 0 } delay=.1 unset switch isvgaconnected || switch=not while :;do while isvgaconnected $switch;do sleep $delay done if [ "$switch" ];then unset switch echo vga is connected # doing something while vga is connected else switch=not echo vga is not connected. # doing something else, maybe. fi done </code></pre><p><strong> upozornění: </strong> <em>lehčí než <code>xrandr</code>, ale ne nevýznamné</em> se zpožděním menším než <em>,02</em> sekund, bash skript půjde na začátek procesu jedlíci zdrojů (<code>top</code>)!</p><p>i když to stojí ~ 0,001 s:</p><pre><code>$ time read -a &lt;/proc/stat crtstat </code></pre><p>vyžaduje to ~ 0,030 s:</p><pre><code>$ read -a &lt; /proc/acpi/video/vid/crt0/state crtstate </code></pre><p>to je velké! takže v závislosti na tom, co potřebujete, lze <code>delay</code> rozumně nastavit mezi <code>0.5</code> a <code>2</code>.</p><h3>úprava # 2</h3><p>nakonec jsem něco našel:</p><p><strong> důležité vyloučení odpovědnosti: </strong> hraní s <code>/proc</code> a <code>/sys</code> záznamy mohou poškodit váš systém !!! takže na produkčních systémech nezkoušejte následující.</p><pre><code>mapfile watchfilelist &lt; &lt;( find /sys /proc -type f 2&gt;/dev/null | grep -i acpi\\\|i91 ) prompt=("/" "|" '\' '-'); l=0 while :; do mapfile watchstat &lt; &lt;( grep -h . ${watchfilelist[@]} 2&gt;/dev/null ) for ((i=0;i&lt;=${#watchstat[@]};i++)); do [ "${watchstat[i]}" == "${oldstat[i]}" ] || echo ${watchstat[i]} done oldstat=("${watchstat[@]}") sleep .5 printf "\r%s\r" ${prompt[l++]} [ $l -eq 4 ]&amp;&amp;l=0 done </code></pre><p>... po očištění nežádoucích záznamů:</p><pre><code>for ((i=0;i&lt;=${#watchfilelist[@]};i++)); do [[ "${watchfilelist[$i]}" =~ /sys/firmware/acpi/interrupts/sci ]] &amp;&amp; unset watchfilelist[$i] &amp;&amp; echo $i done </code></pre><p>to jsem dokázal přečíst:</p><pre><code>/proc/acpi/video/vid/crt0/state:state: 0x1d /proc/acpi/video/vid/crt0/state:state: 0x0d /proc/acpi/video/vid/crt0/state:state: 0x1d </code></pre><p>když připojím, odpojte a znovu zapojte kabel monitoru.</p><p>při dotazu na konfiguraci (spuštění <code>system/preferences/monitor</code> nebo <code>xrandr</code>), grafické karty udělají typ <em>scan</em>, takže běží <code>xrandr -q</code> vám dá informace, ale musíte zjistit stav.</p><p>prohledal jsem všechny protokoly (jádro, démona, x atd.) prohledávajícím <code>/proc</code> &amp; <code>/sys</code> a zjevně se zdá, že neexistuje nic, co by vyhovovalo vaší žádosti.</p><p>zkusil jsem to také:</p><pre><code>export spc50="$(printf "%50s" "")" watch -n1 ' find /proc/acpi/video -type f | xargs grep -h . | sed "s/^\([^:]*):/\1'$spc50'}:/; s/^\(.\{50\}\) *:/\1 /"' </code></pre><p>po tom všem, když spustíte <code>system/preferences/monitor</code> zatímco nebyla připojena žádná nová obrazovka ani odpojena, bude se nástroj zobrazovat jednoduše (normálně). ale pokud jste již dříve připojili nebo odpojili obrazovku, občas spustíte tento nástroj a uvidíte, že na ploše vytvoříte typ <em>reset</em> ​​nebo <em>obnovit</em> ​​(stejný pokud spustíte <code>xrandr</code>).</p><p>zdá se, že to potvrzuje, že tento nástroj požádá o <code>xrandr</code> (nebo pracuje stejným způsobem) pravidelným dotazováním na stav, počínaje okamžikem jeho spuštění.</p><p>můžete vyzkoušet sami:</p><pre><code>$ for ((i=10;i--;)); do xrandr -q | grep ' connected' | wc -l; sleep 1; done 1 1 1 2 2 2 1 1 1 1 </code></pre><p>tím se na 10 sekund zobrazí počet připojených obrazovek (displejů).</p><p>zatímco to běží, připojte a/nebo odpojte obrazovku/monitor a podívejte se, co se děje. takže byste mohli vytvořit malou testovací funkci bash:</p><pre><code>isvgaconnected() { local xrandr=$(xrandr -q) [ "$xrandr" == "${xrandr#*vga1 con}" ] || return 0 return 1 } </code></pre><p>který by byl použitelný jako v:</p><pre><code>$ if isvgaconnected; then echo yes; fi </code></pre><p>ale buďte opatrní, <code>xrandr</code> trvá asi <strong> 0,140 s do 0.200 s </strong>, zatímco na zástrčkách nedojde k žádné změně a do <strong> 0,770 sekund </strong> kdykoli něco bylo připojeno nebo odpojeno těsně před (<strong> poznámka: </strong> zdá se, že to není zdrojový zdroj).</p><h3>úprava # 1</h3><p>abych zajistil, že neučím něco nesprávného, ​​prohledával jsem web a dokumenty, ale nenašel jsem nic o <em>dbus and screens</em>.</p><p>nakonec jsem běžel ve dvou různých oknech <code>dbus-monitor --system</code> (hrál jsem také s možnostmi) a malý skript, který jsem napsal:</p><pre><code>$ for ((i=1000;i--;)); do isvgaconnected &amp;&amp; echo yes || echo no; sleep .5; done </code></pre><p>... a znovu zapojen, než odpojen monitor, mnohokrát. takže teď mohu říci:</p><ul> <li><em>v této konfiguraci <strong> pomocí ovladače i915 </strong> neexistuje jiný způsob, než spustit <code>xrandr -q</code> vědět, zda je monitor připojen nebo ne.</em></li> </ul><p>ale buďte opatrní, protože se nejeví jiné způsoby. například se zdá, že <code>xrandr</code> tyto informace sdílí, takže moje plocha gnome by se automaticky přepnula na <code>xinerama</code> automaticky ... <strong>, když jsem běžel <code>xrandr</code> </strong>.</p><h3>některé dokumenty</h3><ul> <li> <a href="https://wiki.archlinux.org/index.php/xrandr#toggle\_external\_monitor">skript pro přepínání interního/externího displeje pro notebooky</a> </li> <li> <a href="http://www.x.org/docs/intel/hd/ihd\_os\_vol\_3\_part4\_bjs.pdf">®intel hd graphics opensource programmer's reference manual</a> </li> </ul> <p><strong> edit: </strong>první kontrola, pokud jste nevyčerpali místo na disku, před vyřešením rozlišení souvisejícího s konfigurací.</p><p>zdá se, že máte příliš nízkou maximální velikost <code>innodb\_data\_file\_path</code> ve vašem <code>my.cnf</code>, v tomto příkladu</p><pre><code>innodb\_data\_file\_path = ibdata1:10m:autoextend:max:512m </code></pre><p>nelze kombinovat více než 512 mb dat ve všech tabulkách inodbb.</p><p>možná byste měli přepnout na režim inodb-na-stůl pomocí <code>innodb\_file\_per\_table</code>.</p> pokud se při výpočtu objeví následující chybová hláška: je třeba nainstalovat patch knihoven systému mfc8. link ke stažení: http://www.microsoft.com/downloads/details.aspx?familyid=766a6af7-ec73-40ff-b072-9112bab119c2&displaylang=en <h2>poznámka před zahájením:</h2><p>tato funkce závisí na hardwaru i softwaru. pokud váš hardware nepodporuje řízení rychlosti ventilátoru nebo je nezobrazuje os, je velmi pravděpodobné, že toto řešení nelze použít. pokud ano, ale software (aka jádro) neví, jak jej ovládat, máte štěstí.</p><hr><ol> <li>nainstalujte balíčky <a href="https://apps.ubuntu.com/cat/applications/lm-sensors">lm-senzory</a> a <a href="https://apps.ubuntu.com/cat/applications/fancontrol">fancontrol</a> .</li> <li> <p>konfigurovat <strong> lm-senzory </strong></p> <ol> <li>v typu terminálu <code>sudo sensors-detect</code> a odpovězte ano na všechny ano/žádné otázky.<br> <em> (potenciálně to může poškodit váš systém nebo způsobit selhání systému. pro mnoho systémů je to bezpečné. neexistuje žádná záruka, že tento proces váš systém natrvalo nepoškodí, jen si myslím, že šance na takové kritické selhání je <strong> opravdu nízká </strong>. uložení veškeré práce pro případné havárie/zmrazení/restartování před zpracováním konfigurace systému je vždy dobrý nápad. nevíte si, přečtěte si komentáře a zkuste prohledat web a získat nějaký přehled na vysoké úrovni, než začnete vše, možná bude stačit selektivita u vašich ano-es)</em></li> <li>na konci detekce senzorů se zobrazí seznam modulů, které je třeba načíst. zadejte „ano“, aby senzory detekovaly vložení těchto modulů do/etc/modules nebo sami/editovali/etc/modules.</li> <li>spustit <code>sudo service module-init-tools restart</code>. tím se přečtou změny, které jste provedli v <code>/etc/modules</code> v kroku 3 a vložte nové moduly do jádra. <ul> <li><strong> poznámka </strong>: pokud používáte ubuntu 13.04 nebo vyšší, měl by být tento 3. krok nahrazen <code>sudo service kmod start</code>.</li> </ul> </li> </ol> </li> <li> <p>konfigurovat <strong> fancontrol </strong></p> <ol> <li>v typu terminálu <code>sudo pwmconfig</code>. tento skript zastaví každého fanouška po dobu 5 sekund, aby zjistil, které ventilátory lze ovládat pomocí pwm. po smyčce skriptu přes všechny ventilátory můžete nakonfigurovat, který ventilátor odpovídá které teplotě.</li> <li>budete muset určit, jaké senzory použít. to je trochu složitější. pokud máte jen jeden ventilátor, ujistěte se, že používáte jádro pro teplotní čidlo, abyste mohli založit rychlost řízení ventilátoru.</li> <li>proveďte výzvy a uložte změny do výchozího umístění.</li> <li>proveďte úpravy doladění <code>/etc/fancontrol</code> a použijte <code>sudo service fancontrol restart</code> pro uplatnění vašich změn. (v mém případě jsem nastavil interval na 2 sekundy.)</li> </ol> </li> <li> <p>nastavit <strong> službu fancontrol </strong></p> <ol> <li>spustit <code>sudo service fancontrol start</code>. tím se také automaticky spustí služba fancontrol při spuštění systému.</li> </ol> </li> </ol><p>v mém případě <code>/etc/fancontrol</code> pro cpu jsem použil:</p><p>nastavení pro hwmon0/device/pwm2:<br> (závisí na hwmon0/device/temp2\_input) (ovládá hwmon0/device/fan2\_input)</p><pre><code>interval=2 mintemp=40 maxtemp=60 minstart=150 minstop=0 minpwm=0 maxpwm=255 </code></pre><p>a na jiném systému je to:</p><pre><code>interval=10 devpath=hwmon1=devices/platform/coretemp.0 hwmon2=devices/platform/nct6775.2608 devname=hwmon1=coretemp hwmon2=nct6779 fctemps=hwmon2/pwm2=hwmon1/temp2\_input fcfans=hwmon2/pwm2=hwmon2/fan2\_input mintemp=hwmon2/pwm2=49 maxtemp=hwmon2/pwm2=83 minstart=hwmon2/pwm2=150 minstop=hwmon2/pwm2=15 minpwm=hwmon2/pwm2=14 maxpwm=hwmon2/pwm2=255 </code></pre><p> <a href="https://www.systutorials.com/docs/linux/man/8-fancontrol/">zde</a> je několik užitečných informací o nastaveních a o tom, co skutečně dělají</p> <p>pro postgresql může být výkon procesoru velmi důležitý, zejména pokud do paměti ram zapadá poměrně vysoké procento aktivní pracovní sady vašich dat. většina databází, se kterými jsem pracoval, měla většinu času cpu jako hlavní překážku. (právě jsem zkontroloval vmstat na serveru hostujícím webové stránky s miliony přístupů denně, které hostovaly více než 5 tb databázového prostoru, a nikdy jsem neviděl více než 2% času čekání na disk, ale viděl jsem vrchol 12% času cpu uživatele.)</p><p>protože postgresql je založeno na procesech, každý jednotlivý proces může běžet jen tak rychle jako jedno jádro, ale ve směsi, jako máme na výše uvedeném serveru, s velkým objemem malých požadavků, je nejdůležitější celkový procesor ve všech jádrech. při stejném celkovém výkonu procesoru bude postgresql obecně pracovat lépe s menším počtem rychlejších jader než s mnoha pomalejšími jádry.</p><p>až do mezipaměti vysokého procenta aktivní sady dat je přidání ram obvykle pro buck zobrazí větší třesk než přidání jader. po dostatečném ukládání do mezipaměti je výhodou další ram klesá a máte lepší podporu při zvyšování výkonu procesoru).</p><p>pro více informací o tomto tématu, které se týká postgresql, si nemyslím, že existuje lepší zdroj než <a href="http://www.postgresql.org/docs/books/"><em> postgresql 9.0 vysoký výkon</em></a> od <strong> greg smith </strong>. (úplné zveřejnění, byl jsem technickým recenzentem knihy, ale nezískávám na základě prodeje žádné finanční výhody.)</p> <p>myslím, že znamenají, že byste měli používat <a href="http://en.wikipedia.org/wiki/smart\_pointer">inteligentní ukazatele</a> místo běžných ukazatelů.</p><blockquote> <p>ve vědě o počítačích je inteligentní ukazatel abstraktní datový typ, který simuluje ukazatel a zároveň poskytuje další funkce, jako je automatický sběr odpadu nebo kontrola mezí. účelem těchto dalších funkcí je omezit chyby způsobené zneužitím ukazatelů při zachování účinnosti. inteligentní ukazatele obvykle sledují objekty, na které ukazují, za účelem správy paměti.</p> <p>zneužití ukazatelů je hlavním zdrojem chyb: konstantní alokace, deallokace a odkazování, které musí být provedeny programem napsaným pomocí ukazatelů, představuje riziko, že dojde k úniku paměti. inteligentní ukazatele se pokoušejí zabránit úniku paměti automatizováním automatického přidělování prostředků: když je ukazatel (nebo poslední v řadě ukazatelů) na objekt zničen, například proto, že je mimo rozsah, je zničen i špičatý objekt.</p> </blockquote><p>v c++ by byl kladen důraz na sběr odpadu a zabránění úniku paměti (abychom jmenovali alespoň dvě). ukazatele jsou základní součástí jazyka, takže jejich použití je do značné míry nemožné, s výjimkou nejvzácnějších programů.</p> > 
> Kdo ovládá výchozí velikost maximální zásobníku; OS nebo kompilátor?
> 
> 
> 


Překladač obvykle. OS / hardware, omezuje jej do určité míry. Výchozí hodnota je 8 MB. Na linux IIRC. Myslete na `ulimit -s`systému Linux (pro změnu velikosti zásobníku).



> 
> Je výchozí maximální poměru k celkové paměti? (Tj stroj s 2GB paměti by mít větší velikost než výchozí stroji s pouze 512) V tomto příkladu oba stroje jsou stejné nastavení os / překladač, jen různá množství systémové paměti RAM.
> 
> 
> 


Ne. Dokud a pokud to uděláte yiurself.You může změnit velikost zásobníku přes kompilátor přepínače.



```
ld --stack=<STACK_SIZE>

```

nebo 



```
gcc -Wl,--stack=<STACK_SIZE>

```


> 
> Vezměte si Standard C ++ o problematice komínů a hromady:
> 
> 
> 


Norma je založena na abstraktním stroji a opravdu není sama o sobě tím hardwarem nebo komíny nebo hromad. To mluví o přidělené obchodu a volného obchodu. Volný obchod je místo, kde byste se, pokud voláte nový (většinou). FWIW, implementace může mít pouze jeden paměťový prostor maskující se jako oba zásobníku a haldy, pokud jde o námitky alokaci.


Váš dotaz, omáčky, scvrkává být specifický problém implementace spíše než záležitost jazyka. 


Snad to pomůže.