Блеск и нищета ООП - страница 2

 
Integer:
Зачем мне понимать механизмы компиляции? Только для того, чтобы уверовать, что плохой резлультат лучше хорошего?  Имеет значение результат. 

Чтобы правильно писать тесты и не вводить в заблуждение людей.

Вы не понимаете даже то, что написали в своем тесте и что в реальности тестируете.


Таковы последствия массового обучения дотнетам и аналогичным языкам. У программисты напрочь отбито желание разбираться в том, что и как в реальности работает.

 
Renat:

Чтобы правильно писать тесты и не вводить в заблуждение людей.

Вы не понимаете даже то, что написали в своем тесте и что в реальности тестируете.


Таковы последствия массового обучения дотнетам и аналогичным языкам. У программисты напрочь отбито желание разбираться в том, что и как в реальности работает.

У каждого свои шоры на глазах, как у лошадей (что бы лишнего не видели).

Один видит свое, другой свое. Но не значит что оба правы или не правы.

Истина где-то рядом.

Разработчик хотел одно, получил другое. Это не значит что выполнено задание. Работает же. Может не так как ожидалось или хотелось 

Пользователь делает свой тест (что вполне прогнозируемо). Это не значит что тест устроит все стороны.

Истина где то рядом. 

Скорость выполнения операций имеет слишком большое значение. Это не моя прихоть, это жизнь.

И доказывать надо это тестами, а не словами. 

 
Vinin:

Скорость выполнения операций имеет слишком большое значение. Это не моя прихоть, это жизнь.

И доказывать надо это тестами, а не словами. 

Я сразу же указал на ошибки в предложенных тестах. Потом несколько раз объяснил суть.

 

Виртуальные методы всегда будут дороже обычных, но тестировать оптимизирующие компиляторы надо правильно с пониманием что/как сворачивается и оптимизируется.

В данном случае мы еще не реализовали метод оптимизации по автоматическому конвертированию виртуальной функции в обычную (это делают другие компиляторы при возможности), что сразу же изменит результаты этого теста и снова введет в заблуждение (вызов виртуального метода вдруг неожиданно может оказаться быстрее обычного).

 
Renat:

Виртуальные методы всегда будут дороже обычных, но тестировать оптимизирующие компиляторы надо правильно с пониманием что/как сворачивается и оптимизируется.

В данном случае мы еще не реализовали метод оптимизации по автоматическому конвертированию виртуальной функции в обычную (это делают другие компиляторы при возможности), что сразу же изменит результаты этого теста и снова введет в заблуждение (вызов виртуального метода вдруг неожиданно может оказаться быстрее обычного).

То есть - на данном этапе Интежер прав.  А признать и объяснить нельзя было сразу. Или что-то мешает?
 
Vinin:
То есть - на данном этапе Интежер прав.  А признать и объяснить нельзя было сразу. Или что-то мешает?
Перечитайте всю тему внимательно, пожалуйста.
 
Renat:

Виртуальные методы всегда будут дороже обычных, но тестировать оптимизирующие компиляторы надо правильно с пониманием что/как сворачивается и оптимизируется.

В данном случае мы еще не реализовали метод оптимизации по автоматическому конвертированию виртуальной функции в обычную (это делают другие компиляторы при возможности), что сразу же изменит результаты этого теста и снова введет в заблуждение (вызов виртуального метода вдруг неожиданно может оказаться быстрее обычного).

 Вообще-то не компилятор тестировался, а два метода решения одной задачи. Без разницы как гудит холодильник ууууу или ыыыыы, важно как он морозит. 

 
Integer:

 Вообще-то не компилятор тестировался, а два метода решения одной задачи. Без разницы как гудит холодильник ууууу или ыыыыы, важно как он морозит. 

Вы тестировали некорректно, представив упрощенный и вырожденный тестовый пример. Это не задача, а именно вырожденный до пустышки пример.

Вы не обратили внимания на оптимизатор компилятора, который вовсю оптимизировал вариант прямых вызовов пустышек.

 
Renat:

Вы тестировали некорректно, представив упрощенный и вырожденный тестовый пример. Это не задача, а именно вырожденный до пустышки пример.

Вы не обратили внимания на оптимизатор компилятора, который вовсю оптимизировал вариант прямых вызовов пустышек.

После того было еще два варианта тестирования, 2 - с непустыми функциями, 3 - с уникальными функциями, результаты аналогичные. Вариант 1 был еще проведен в C#, но результат был обратный.
 
Renat:
Перечитайте всю тему внимательно, пожалуйста.
Читать можно вечно, но надо приводить факты. Провести тест и показать цифры. Надо доказать что Интежер не прав. Ему такой результат (да и не только ему) нужен. Я тоже могу говорить много, но стараюсь без фактов этого не делать. Результатам тестов Интежера я доверяю. Но противного не было, только слова
Причина обращения: