Як однопоточному додатку, як-от Excel 2003, можна взяти більше 50% гіперпотокового або двоядерного процесора в диспетчері завдань?


3

Я чекаю, поки Excel завершить перерахунок, і я помічаю, що використання процесора, як повідомляє Task Manager, іноді підсилюється до 51% або 52% на Pentium 4 з гіперпотоками. Як це виконує однопоточне додаток, наприклад, Excel 2003?

Це просто помилка округлення / оцінки з боку диспетчера завдань? Або це щось пов'язане з розподілом HT, тобто я б не бачив, щоб це відбувалося на справжній двоядерній або двопроцесорній машині?

Відповіді:


6

Я був би здивований, якщо Excel 2003 є одним потоком. Ймовірно, що принаймні потік інтерфейсу та робочий потік. Чи перефарбовується UI під час обчислення? Якщо так, то Excel не є однопоточним.


Саме це, швидше за все, від перемальовування або вхідного потоку. Excel 2003 не є "багатопоточним" у своїх розрахунках, але це не означає, що вся програма працюватиме на одній темі, звичайно.
Gnoupi

1
Замість того, щоб сперечатися про внутрішню роботу програми із закритим кодом, чому б вам не сказати менеджеру завдань, щоб він показував вам стовпець "Потоки"? Він перераховує кількість потоків у додатку ...
marcusw

1
Я бачу, що у Excel 5 потоків, тому це має сенс. Я зробив припущення, що тому, що перед версіями Excel 2007 тільки 1 розрахунковий потік, що програма використовує тільки 1 потік, трохи нерозумно в ретроспективі! :)
Lunatik

Крім того, ОС багатопотокова. Хоча Excel працює, він говорить ОС робити всі види речей. ОС може робити всі види речей у своїх власних потоках, таких як попередній вибір файлів, змивання змінених сторінок на диск, обнулення повернутих сторінок пам'яті, перемальовування екрану тощо.
David Schwartz

1

MS Windows за замовчуванням не блокує додаток до одного ядра, так що те, що ви бачите, є проявом Excel, що виконується на одному ядрі або іншому.

Ви можете (тимчасово) змінити цю поведінку за допомогою диспетчера завдань.

Якщо у вас запущено Excel, запустіть taskmgr.exe, перейдіть до списку Процес і клацніть правою кнопкою миші на цьому процесі, ви можете встановити для програми відповідність

Позначення його специфічним для одного ядра або іншого дозволить вам побачити (знову ж таки в taskmgr), що він працює тільки на одному ядрі.


1

Ну, а якщо у вас є один процесор ядра / нитки? Як Excel може використовувати більше 50% цього? Якщо у вас є 2 ядра, і кожен з них може запускати один потік, а Excel працює на одному ядрі, то він може використовувати до 100% цього ядра.

При гіперпотоці, у вас немає 2 "реальних" потоків на ядро ​​процесора, але 2 "віртуальні" потоки. 2 потоки мають поділитися своїми ресурсами виконання. Таким чином, можливо, для одного з потоків використовувати більше ресурсів, ніж інший, що може показувати як використання вище 50%.


1
Просто спробував його на моїй домашній машині, C2D, і те ж саме спостерігається, отже, він не може мати нічого спільного з HT як такий.
Lunatik
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.