OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 21:56

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: Пятница, 08 Июнь, 2012 21:43 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Есть любители сравнивать простенькие циклы, записав их на Шарпе, в котором -- ко всему прочему -- нет ни удобного LOOP-EXIT, ни многоветочного IF.
Даже если там есть оптимизация, она, надо ожидать, не настроена на распознавание этих управляющих структур.
Из чего следует, что в генерируемом коде вероятен оверхед.

Кстати: процессор может пред-вычислять две ветки одного IF-а, но как он справится с двумя вложенными IF-ами?

Меня здесь не интересует разница между алгоритмами, разными по идее (как простой поиск и Бойер-Мур). Чисто вопросы оптимизации низкого уровня.

Кто-нить может прокомментировать?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 08 Июнь, 2012 23:04 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Теоретически оверхед возможен уже потому, что используется промежуточный язык --- чем дальше набор инструкций целевого CPU от CIL, тем больше оверхед.

Подробнее стоит поглядеть диссертацию Франца (http://oberoncore.ru/library/code-gener ... e_software). Там IL рассматриваются, а .NET транслирует в MSIL (http://en.wikipedia.org/wiki/Common_Int ... e_Language).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 08 Июнь, 2012 23:24 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Теоретически оверхед возможен уже потому, что используется промежуточный язык --- чем дальше набор инструкций целевого CPU от CIL, тем больше оверхед.
Да. но там наворочено черте-что. Unsafe код и т.п. -- может, там как-то без промежуточного кода?

Или всегда через ... промежуточный код?

----
Что подобные тесты практически бессмысленны, хорошо известно.

Любопытство чисто мелкое техническое -- может, там что-то есть, иначе трудно объяснить, почему людям в голову такие идеи приходят, на первый взгляд просто дикие.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 09 Июнь, 2012 10:32 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Info21 писал(а):
Да. но там наворочено черте-что. Unsafe код и т.п. -- может, там как-то без промежуточного кода?

Или всегда через ... промежуточный код?
Деталей не знаю, потребности не было. Модель: исходник -> CIL -> ... -> код целевого процессора. Вроде можно сделать непереносимый кодовый файл, содержащий сразу код целевого процессора, но мне кажется маловероятным, что для него будет использована особенная прямая компиляция из исходника, в обход CIL.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 09 Июнь, 2012 10:54 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Info21 писал(а):
Евгений Темиргалеев писал(а):
Теоретически оверхед возможен уже потому, что используется промежуточный язык --- чем дальше набор инструкций целевого CPU от CIL, тем больше оверхед.
Да. но там наворочено черте-что. Unsafe код и т.п. -- может, там как-то без промежуточного кода?

Или всегда через ... промежуточный код?

unsafe - это работа с указателями, "ручное" управление динамической памятью почти точно такое же, как в С++.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 09 Июнь, 2012 11:47 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Валерий Лаптев писал(а):
unsafe - это работа с указателями, "ручное" управление динамической памятью почти точно такое же, как в С++.
Но через промежуточный код? или как?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 09 Июнь, 2012 23:18 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
В общем, всегда MSIL.

Специалисты по оптимизирующим компиляторам над подобного рода тестами -- даже без MSIL -- издевались, когда я последний раз в Новосибирске на эти темы с ними просвещался.

Думал, может, тут что-то скрыто новое, мало ли.
Ни хрена тут не скрыто. Одна всё та же ... гениальность.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 10 Июнь, 2012 14:28 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Додиез - это бывшая Java от Микрософта.
Но Микрософт проиграл судебное дело по поводу авторских прав на Яву (поскольку Sun все запатентовала) и были вынуждены просто поначалу обозвать по-другому. А потом уже стали развивать в желаемом направлении.
Поэтому там изначально не только MSIL, но даже просто байт-код модифицированный.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB