![]() |
◊ |
www.udomlya.ru | Медиа-Центр | Удомля КТВ | Старый форум |
![]() |
#41 | |
Местный
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
|
![]() Цитата:
Это так, чтобы напряжение снять.. В))
__________________
I never saw a wildthing sorring for itself. A small bird will drop frozen dead without ever felt sorry for itself. |
|
![]() |
![]() |
#42 | |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]() Цитата:
![]() void main() { while(1){} } Эй, желающие научиться программировать, вот вам практическое задание начального уровня. Скомпилять строку кода на С и убедиться в моей правоте! ![]() ![]() ![]() |
|
![]() |
![]() |
#43 | |
Местный
Регистрация: 26.04.2006
Адрес: Удомля, гдежещё
Сообщений: 1,986
Вы сказали Спасибо: 676
Поблагодарили 257 раз(а) в 167 сообщениях
|
![]() Цитата:
Такой код загрузит только маленькую толику процессора.... а именно - его алу и то не всё. И при этом полностью поместится в кэш... Да и к тому же - как поведет себя компилятор в этом случае? если хороший, то он просто с оптимизирует этот цикл, т.е. выкинет его вообще... В) ХОтя выкинет - врядли... ну не знаю, надо пробовать. НО греть этот код точно будет не очень сильно. В-)
__________________
I never saw a wildthing sorring for itself. A small bird will drop frozen dead without ever felt sorry for itself. |
|
![]() |
![]() |
#44 | |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]() Цитата:
![]() Последний раз редактировалось Messiah; 07.04.2008 в 21:06. |
|
![]() |
![]() |
#45 | |
Пользователь
Регистрация: 30.04.2006
Сообщений: 55
Вы сказали Спасибо: 3
Поблагодарили 3 раз(а) в 2 сообщениях
|
![]() Цитата:
![]()
__________________
46 55 43 4B 20 59 4F 55 21 |
|
![]() |
![]() |
#46 |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]()
Любого другого проца, даже двумя порядками выше по классу, тоже загрузит. И здесь дело в подходе а совсем не в архитектуре. Приведено в качестве простейшего примера для сравнения. Ну можно ещё взять таблицу системы команд проца, чтоб соблюсть все мыслимые и немыслимые "приличия" и финальный код займёт от силы пол-страницы...идти дальше-навялить гуи, написать лапши кода до нескольких сот мегов, запатентовать, приклеить лейбл бренда, упаковать, провести рекламную кампанию и предложить коржикам. Как думаешь, что будет? Схавают и ещё попросят. Будут рекомендовать другим и говорить какие они крутые. А теперь отступление - вспомни Гену С. ;-)
Последний раз редактировалось Messiah; 07.04.2008 в 22:17. |
![]() |
![]() |
#47 |
Местный
Регистрация: 27.12.2006
Адрес: Удомля
Сообщений: 295
Вы сказали Спасибо: 379
Поблагодарили 52 раз(а) в 41 сообщениях
|
![]() |
![]() |
![]() |
#48 | |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]() Цитата:
|
|
![]() |
![]() |
#49 |
Пользователь
Регистрация: 17.02.2008
Сообщений: 36
Вы сказали Спасибо: 14
Поблагодарили 13 раз(а) в 6 сообщениях
|
![]()
100% и не процентом меньше.
__________________
В вихре яростных атак не расквась себе пятак! |
![]() |
![]() |
#50 |
Местный
Регистрация: 20.09.2007
Сообщений: 4,226
Вы сказали Спасибо: 1
Поблагодарили 6,561 раз(а) в 1,660 сообщениях
|
![]()
Видимо рамки затронутой мною темы стали расширяться и начинают где то затрагивать не только хардвер, но и основы программирования. Тем не менее продолжим изыски, в рамках приведённой вчера строки кода по 100% загрузке проца. Отличительной особенностью x86 является набор команд, количество которых в старших моделях Pentium'ов достигает пятисот, что значительно превышает количество команд во всех остальных популярных процессорах вместе взятых! Само по себе число поддерживаемых команд ни о чем не говорит, напротив, даже вызывает сомнения в их элегантности. После употребления пива (применение его опционально, когда надо порассуждать) сделаем небольшой экскурс «внутрь» и вспомним, что процессор (за редкими исключениями) исполняет не программы, написанные на языке программирования, а некий «машинный код». Какой бы крутой не был проц, это всё равно набор транзисторов (хоть 2000, хоть 20000000) и не более того, поэтому командами для него являются последовательности байтов, находящихся в памяти. Иногда команда может быть равна одному байту, иногда она занимает несколько байт. Там же, в памяти находятся и данные. Они могут находиться в отдельной области, а могут и быть «перемешаны» с кодом. Различие между кодом и данными состоит в том, что данные — это то, над чем процессор производит какие-то операции. А код — это команды, которые ему сообщают, какую именно операцию он должен произвести. Для упрощения представим себе программу и ее данные в виде последовательности байтов некой конечной длины, располагающуюся непрерывно в общем массиве памяти. Например, есть массив памяти длиной в 1’000’000 байт, а программа (вместе с данными) — это байты с номерами от 1000 до 20’000. Для того чтобы исполнить команду, процессор должен прочитать ее из памяти. Для того чтобы произвести операцию над данными, процессор должен прочитать их из памяти и после произведения над ними действия, записать их обратно в обновленном виде. Команды и данные идентифицируются с их адресом, который, по сути, представляет собой порядковый номер ячейки памяти. Вот собственно на этом и всё. Если перечитать ещё и ещё раз изложенное, мысленно представить себе происходящие процессы, то можно самому смоделировать ситуацию, которая позволит загрузить процессор простым набором кода без всяких там ухищрений. Во вложении скомпилированная вчерашняя строка кода нулевого цикла, размер которой 24 кБ.!!! (в архиве 7 кБ.) И скриншот загрузки ею 2-х "яйцевого" проца. Первый слева 100, второй сачкует, общая загрузка 50. Не верите? Проверьте.
![]() |
![]() |
Здесь присутствуют: 3 (пользователей: 0 , гостей: 3) | |
|
|