Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / чудеса оптимизации VC 7.1 / 23 сообщений из 23, страница 1 из 1
04.11.2003, 05:06
    #32314255
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
пример, имеем класс Writer:
Код: plaintext
1.
2.
3.
4.
5.
6.
class Writer {
// ... что-то
  virtual void Write(int data);
  virtual void Write(float data);
  virtual void Write(long data);
// ... что-то
}

перечисленные ф-ии имеют в принципе одинаковые тела, напр.:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void Writer::Write(int data) {
  m_stream.Write(&data, sizeof(data));
}

void Writer::Write(int float) {
  m_stream.Write(&data, sizeof(data));
}

// ...

дебажу это все скуки ради, и вдруг с ужасом замечаю, что во время вывода значения типа int влетаю в Writer::Write(float)!!!

начинаю верить в бога или, на худой конец, в БОЛЬШОЙ НЕИСПРАВИМЫЙ БАГ компилятора. Немного покопавшись в ассемблерном промежуточном сгенерированном коде пришел к следующему:

1. компилятор "выбросил" ф-ции, которые, на его взгляд, делают одно и тоже. Вместо 10-ти осталось 3.
2. Таблица виртуальных ф-ций класса осталась цела, но несколько ее строк ссылаются на одни и те же ф-ии.
3. Каково?
...
Рейтинг: 0 / 0
04.11.2003, 08:12
    #32314298
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
А мож настройка какая-то есть типа использовать только целочисленную арифметику ? :-)
...
Рейтинг: 0 / 0
04.11.2003, 08:42
    #32314313
YuriAM
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Ты посмотри хорошо, помоему long поставлено на int ( #define long int )
и так еще есть наверное.
Так что ты просто несколько раз написал те же функции!!!
...
Рейтинг: 0 / 0
04.11.2003, 16:07
    #32314998
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
эхххх, не поверил народ, не проникся!


Mik Prokoshin писал:А мож настройка какая-то есть типа использовать только целочисленную арифметику ? :-)

В приведенном примере никакой арифметики. Это вывод в поток содержимого памяти по указанным адресам. Дело в том, что размер float, int, long - совпадают на I32, поэтому получили одинаковые ф-ии именно для случая I32.

YuriAM писал:Ты посмотри хорошо, помоему long поставлено на int ( #define long int )
и так еще есть наверное.
Так что ты просто несколько раз написал те же функции!!!
я даже не знаю, что ответить. Поверь, для этого форума подобное предположение - из разряда "шедевров".

удели, плиз, время 1 мин, скопируй и откомпили следующее:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#define my_long int

int k;

void f1(int i) { k=i; }

void f1(my_long i) { k=i; }  // попытка перегрузки сигнатуры

int main()
{
  f1((int) 10 );
  f1((my_long) 20 );
  return k;
}

Скомпилилось? :)
...
Рейтинг: 0 / 0
04.11.2003, 16:19
    #32315025
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
а с
Код: plaintext
typedef
тоже не скомпилиться?
...
Рейтинг: 0 / 0
04.11.2003, 16:20
    #32315027
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
ну и оличество же постов у вас, Дмитрий!
...
Рейтинг: 0 / 0
04.11.2003, 18:59
    #32315313
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Юрий писал:а с typedef тоже не скомпилиться?
не-а...

он же писал:ну и оличество же постов у вас, Дмитрий!
1. комфортнее на ТЫ
2. сим постом исправляюсь! страшно было? :)
...
Рейтинг: 0 / 0
05.11.2003, 13:08
    #32316009
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Mik Prokoshin писал:А мож настройка какая-то есть типа использовать только целочисленную арифметику ? :-)
Я вообще-то про настройки компилятора...
Мало ли чего могли придумать. (Сам я .NET еще не трогал, 6-м пока пробавляюсь).
...
Рейтинг: 0 / 0
05.11.2003, 14:35
    #32316185
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Дело в том, что размер float, int, long - совпадают на I32, поэтому получили одинаковые ф-ии именно для случая I32.

Скорее всего так оно и есть

нафиг говорит я буду прыгать туда сюда , если 1.0 и 1 ничем не отличаются
_____________
...
Рейтинг: 0 / 0
10.11.2003, 00:36
    #32318469
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
да нет, 1 и 1.0 отличаются весьма сильно в двоичном представлении.
но вот алгоритм вывода 4-байт в поток абсолютно одинаков, и не зависит от двоичного представления числа. Компилятор РАСПОЗНАЛ одинаковые алгоритмы и "склеил" их, умник.
...
Рейтинг: 0 / 0
10.11.2003, 07:38
    #32318499
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Да, вот это объяснение совершенно логично ! Вероятно, если добавить в функции какое-то действие (скажем, арифметическую операцию), зависящее от типа, то компилятор разделит функции. Умен, собака :-)
...
Рейтинг: 0 / 0
10.11.2003, 11:55
    #32318687
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
2vdimas
Да нет то что эти числа отличаются в двоичном енто я знаю просто я неправильно выразился :))
_____________
__
...
Рейтинг: 0 / 0
10.11.2003, 14:56
    #32318973
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
2 Mik Prokoshin

а что это ты в стане "врага" делаешь? шпиёнишь?
секреты выведываешь?
...
Рейтинг: 0 / 0
11.11.2003, 11:12
    #32319760
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
В смысле "врага" ? Колись, за что это меня во враги записал ? :-O
...
Рейтинг: 0 / 0
11.11.2003, 12:56
    #32320008
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
да нет, Дедьфийцы нам не враги, а вот мы им, похоже, да

это впечатления от нескольких стычек с тигрой на разных форумах, и за что махровые Дельфийцы С++ не любят?
Сишники частенько имеют опыт работы на "вражеской" технологии. А если дельфиец не имеет обоюдного опыта, то начинает производить много шума.

Если по существу - признаюсь, порой провоцирую аппологетов других технологий с целью получения максимума информации. Одно досадно - на чисто технические провокации иногда отвечают совсем нетехническими постами. :)
А так, ну какие мы враги? :) Относительно пекарей, например, мы очень даже коллеги, практически одно и тоже лицо.
...
Рейтинг: 0 / 0
11.11.2003, 13:36
    #32320089
SiDen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Все одно потом все нолики и единички )) Большинство моих знакомых переделались на сишников... так что еще очень как любят.
Одни других и так любят и эдак... и совершенно непонятно за что... вот уж поистине религиозные войны...
...
Рейтинг: 0 / 0
11.11.2003, 14:27
    #32320206
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
это впечатления от нескольких стычек с тигрой на разных форумах, и за что махровые Дельфийцы С++ не любят?

я махровый дельфиец(хотя может и нет) а с++ люблю...
...
Рейтинг: 0 / 0
11.11.2003, 14:43
    #32320244
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
я и сам около года на дельфи карябал, правда давно в 1996-м.
шум бывает там, где кто-то абсолютно не знает технологии оппоннета, тогда вместо технических доводов сыпется всякое г...
...
Рейтинг: 0 / 0
11.11.2003, 14:46
    #32320253
funikovyuri
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Дминтрий - вместо флейма лучше бы ответил в "Сравнение БД"
...
Рейтинг: 0 / 0
12.11.2003, 09:51
    #32320997
Cauchy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
to vdimas

Ну то что у Mik Prokoshin большая часть постов на дельфовом форуме еще мало что значит. У меня тоже большинство сообщений в дельфишный форум, потому как раньше я карябал на дельфи и сейчас по доброте душевной помогаю другим. А в С++ я еще пока мало разбираюсь и потому пока в основном только читаю, набираюсь ума, так сказать. Ну иногда спрашиваю о том, что не смог найти в книжках.
...
Рейтинг: 0 / 0
12.11.2003, 11:57
    #32321220
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Хе-хе, с точностью до наборот, я с VC год назад вплотную общался и подзабывать начал... А с Delphi сейчас вожусь. И собираюсь в целях повышения своей стоимости в ближайшем будущем переходить на дотнет :-)
...
Рейтинг: 0 / 0
12.11.2003, 18:34
    #32322057
vdimas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
на дотнет пора было уже перейти давно.

правда, вот существует ошибочное мнение, что это отразиться в сторону повышения на чьей-то стоимости. Чушь, как ни печально. :(
Да, одно время был взрыв зарплат, т.к. спецов было мало. Теперь ЗП дотнетчиков медленно но верно падают до вполне обычных размеров.
Но перейти дельфийцам на дотнет все-равно придется, хотя бы ради сохранения ЗП, которая может в ближайшей перспективе упасть. :)

Что прикольно, так это, несмотря на кризис IT в штатах, ЗП С++-ников уверенно растут год-от-года.
Скажем, программисту на C# предлагают 60-90, С++-нику 80-120. (это в среднем)

Так что, верной дорогой идем, товарищи! (с) В.И.Л.
...
Рейтинг: 0 / 0
13.11.2003, 10:53
    #32322550
Mik Prokoshin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
чудеса оптимизации VC 7.1
Да я в общем-то скорее ищу наиболее эффективный на некотором классе задач инструмент. Как ПМ мне тоже не мешает знать разные технологии для выбора оптимума. Ну, и как следствие, - стоимость, т.е. к-во денег, которое можно заработать... Я уж на роль кодера на чем-то конкретном не претендую, на чем скажут - на том и буду кодить :-)
А вот выбирать платформу и архитектуру - это надо опыт поиметь.
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / чудеса оптимизации VC 7.1 / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]