Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
#1

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

24.07.2014, 18:12. Просмотров 524. Ответов 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;
}
Честно говоря я не сразу вкурил суть, когда первый раз увидел, потом разобрался.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.07.2014, 18:12
Ответы с готовыми решениями:

очень интересный баг
Если кто-нибудь догадается в чем ошибка, то скажите. Ошибку я уже исправил, но...

Интересный вопрос
Ув. программисты,сегодня с преподователем в университете состоялся интресеный...

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

Интересный вопрос по тренарному оператору (?:)
Вот два варианта тренарного оператора (задача, - аля возведение в модуль......

Имеется интересный небольшой код на Дельфи. Надо переписать его на С++.
Подскажите как преобразовать данный код... А вот и сам код: //объявляем...

8
Vourhey
Почетный модератор
6491 / 2265 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
24.07.2014, 18:30 #2
Возможно, данный пример очень укорочен, что я не вкурил профита. Оптимизация чего здесь представлена?
0
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
24.07.2014, 18:46  [ТС] #3
Цитата Сообщение от Vourhey Посмотреть сообщение
Оптимизация чего здесь представлена
Нужное значение храниться не в отдельной переменной, а непосредственно в this.
0
Vourhey
Почетный модератор
6491 / 2265 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
24.07.2014, 18:56 #4
Цитата Сообщение от Kastaneda Посмотреть сообщение
Нужное значение храниться не в отдельной переменной, а непосредственно в this.
Нужное значение хранится в переменных с именем one, two и т. д.. В чем будет выигрыш между каким-нибудь:
C++
1
2
void *a = (void*)TWO;
std::cout<<(int)a<<...
Добавлено через 30 секунд
Не, я не спорю, что это интересный код. Код любопытный, это да.
0
Kastaneda
Jesus loves me
Эксперт С++
4763 / 2966 / 342
Регистрация: 12.12.2009
Сообщений: 7,531
Записей в блоге: 2
Завершенные тесты: 1
24.07.2014, 19:06  [ТС] #5
Цитата Сообщение от Vourhey Посмотреть сообщение
В чем будет выигрыш между каким-нибудь:
технически выигрыша не будет, кроме того, что Number это говорящий тип, хотя и используются только указатели на него.
0
Vourhey
Почетный модератор
6491 / 2265 / 185
Регистрация: 29.07.2006
Сообщений: 12,534
24.07.2014, 19:08 #6
Цитата Сообщение от Kastaneda Посмотреть сообщение
хотя и используются только указатели на него
Ну да, он больше ни на что не годится
0
Avazart
Эксперт С++
7695 / 5604 / 543
Регистрация: 10.12.2010
Сообщений: 25,154
Записей в блоге: 17
26.07.2014, 16:07 #7
Цитата Сообщение от Vourhey Посмотреть сообщение
Ну да, он больше ни на что не годится
А как же запутывание кода ?
0
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 855
Записей в блоге: 1
27.07.2014, 19:33 #8
На мой пезанский вкус, никакая оптимизация не может быть оправдана таким запутыванием кода. Если бы мне кто ещё показал, какая польза от такой оптимизации.
0
MrGluck
31.07.2014, 19:24     Интересный пример оптимизации
  #9

Не по теме:

Впень!

0
31.07.2014, 19:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.07.2014, 19:24
Привет! Вот еще темы с ответами:

Теория оптимизации
Доброго! В интернете натолкнулся на статью бывалого прогера, который говорит...

Метод оптимизации
Здравствуйте. Помогите перевести программу из консоли в форму, пожалуйста. Еще...

Вопрос оптимизации программы
Программу сообрал, но как показывает практика, она после некоторой стабильной...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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