powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / чудеса оптимизации VC 7.1
23 сообщений из 23, страница 1 из 1
чудеса оптимизации VC 7.1
    #32314255
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример, имеем класс 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
чудеса оптимизации VC 7.1
    #32314298
Mik Prokoshin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мож настройка какая-то есть типа использовать только целочисленную арифметику ? :-)
...
Рейтинг: 0 / 0
чудеса оптимизации VC 7.1
    #32314313
YuriAM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ты посмотри хорошо, помоему long поставлено на int ( #define long int )
и так еще есть наверное.
Так что ты просто несколько раз написал те же функции!!!
...
Рейтинг: 0 / 0
чудеса оптимизации VC 7.1
    #32314998
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
эхххх, не поверил народ, не проникся!


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
чудеса оптимизации VC 7.1
    #32315025
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а с
Код: plaintext
typedef
тоже не скомпилиться?
...
Рейтинг: 0 / 0
чудеса оптимизации VC 7.1
    #32315027
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и оличество же постов у вас, Дмитрий!
...
Рейтинг: 0 / 0
чудеса оптимизации VC 7.1
    #32315313
Фотография vdimas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Юрий писал:а с typedef тоже не скомпилиться?
не-а...

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

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

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

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

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

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

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

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

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

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

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


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