Форум программистов, компьютерный форум CyberForum.ru

C++

Войти
Регистрация
Восстановить пароль
 
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
#1

Интересный пример оптимизации - C++

24.07.2014, 18:12. Просмотров 494. Ответов 8
Метки нет (Все метки)

Привет!
Копаясь в OpenJDK наткнулся на довольно интересный подход (оптимизацию). Решил поделиться, кому-то может быть полезно в плане общего развития, а кому-то может быть просто любопытно.
Код, естественно, максимально упрощен для примера.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
enum number {ONE, TWO, THREE};
 
class Number
{
public:
    number as_number()
    {
        return (number)(long)this;
    }
};
 
int main()
{
    Number *one = (Number*) ONE;
    Number *two = (Number*) TWO;
    Number *three = (Number*) THREE;
    
    std::cout << (int)one->as_number() << " "
              << (int)two->as_number() << " "
              << (int)three->as_number() << std::endl;
}
Честно говоря я не сразу вкурил суть, когда первый раз увидел, потом разобрался.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2014, 18:12     Интересный пример оптимизации
Посмотрите здесь:

Интересный пример для расчёта контрольной суммы. - Visual C++
Цитирую из http://rfc2.ru/1071.rfc in 6 { /* Расчет контрольной суммы Internet для count байтов, * начиная...

Интересный вопрос - C++ Builder
Ув. программисты,сегодня с преподователем в университете состоялся интресеный диалог.в ходе которого он мне заявил точ не одна функция...

Интересный вопрос! - C++ Builder
Как будет работать программа если я изменю условие! if (fV&gt;= 0 &amp;&amp; fAlfa&gt;= 0 &amp;&amp; fAlfa&lt;= 180) просто на if 15 в приведенной ниже...

Интересный вопрос - игра на C++ - Visual C++
Доброго времени суток! Неделю назад начал писать свою первую игру для персоналок - аркадную леталку-стрелялку.. В результате...

Посоветуйте интересный class - C++
В первую очередь вопрос тем, кто уже работает (причем на любом языке программирования) Представьте, что Вы ищете себе джуниора в...

Интересный вопрос по строкам - C++
У нас есть строка типа чар. С помощью функции strtok в строке найдено минимальное слово. Как определить позицию этого слова, то есть с...

очень интересный баг - C++
Если кто-нибудь догадается в чем ошибка, то скажите. Ошибку я уже исправил, но не знаю, почему не работает этот код: #include...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.07.2014, 18:30     Интересный пример оптимизации #2
Возможно, данный пример очень укорочен, что я не вкурил профита. Оптимизация чего здесь представлена?
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
24.07.2014, 18:46  [ТС]     Интересный пример оптимизации #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Оптимизация чего здесь представлена
Нужное значение храниться не в отдельной переменной, а непосредственно в this.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.07.2014, 18:56     Интересный пример оптимизации #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
Нужное значение храниться не в отдельной переменной, а непосредственно в this.
Нужное значение хранится в переменных с именем one, two и т. д.. В чем будет выигрыш между каким-нибудь:
C++
1
2
void *a = (void*)TWO;
std::cout<<(int)a<<...
Добавлено через 30 секунд
Не, я не спорю, что это интересный код. Код любопытный, это да.
Kastaneda
Форумчанин
Эксперт С++
4511 / 2853 / 227
Регистрация: 12.12.2009
Сообщений: 7,249
Записей в блоге: 1
Завершенные тесты: 1
24.07.2014, 19:06  [ТС]     Интересный пример оптимизации #5
Цитата Сообщение от Vourhey Посмотреть сообщение
В чем будет выигрыш между каким-нибудь:
технически выигрыша не будет, кроме того, что Number это говорящий тип, хотя и используются только указатели на него.
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
24.07.2014, 19:08     Интересный пример оптимизации #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
хотя и используются только указатели на него
Ну да, он больше ни на что не годится
Avazart
Эксперт С++
7115 / 5292 / 273
Регистрация: 10.12.2010
Сообщений: 23,387
Записей в блоге: 17
26.07.2014, 16:07     Интересный пример оптимизации #7
Цитата Сообщение от Vourhey Посмотреть сообщение
Ну да, он больше ни на что не годится
А как же запутывание кода ?
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
27.07.2014, 19:33     Интересный пример оптимизации #8
На мой пезанский вкус, никакая оптимизация не может быть оправдана таким запутыванием кода. Если бы мне кто ещё показал, какая польза от такой оптимизации.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 19:24     Интересный пример оптимизации
Еще ссылки по теме:

Интересный вопрос по тренарному оператору (?:) - C++ Builder
Вот два варианта тренарного оператора (задача, - аля возведение в модуль... избавление от минуса) //вариант 1 (result&gt;0) ? ...

Среднее арифметическое (интересный вариант) - C++
В общем суть в том, что у нас есть бочки с жидкостью (Для понимания пусть будет жидкий азот) допустим 3 штуки 8л 4л 2л И...

Интересный момент в условных конструкциях - C++
вопрос отпал, прошу прощения.

Интересный поиск)) Помощь безумно нужна - C++
Такая проблема, если до завтра прогу не напишу, отчислят. Дан текстовый файл, найти в нём нужное слово. Но сложность в том чтобы не...

Интересный вывод, инкремент и декремент в cout - C++
Привет. Вот есть след. код: int i = 0; std::cout &lt;&lt; i &lt;&lt; &quot; &quot; &lt;&lt; ++i &lt;&lt; std::endl; неожиданный вывод, но понять можно. Но вот этот я...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
MrGluck
31.07.2014, 19:24     Интересный пример оптимизации
  #9

Не по теме:

Впень!

Yandex
Объявления
31.07.2014, 19:24     Интересный пример оптимизации
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru