Russian Qt Forum
Май 04, 2024, 15:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2 3   Вниз
  Печать  
Автор Тема: Вопросы студентам  (Прочитано 26969 раз)
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« : Февраль 20, 2016, 08:53 »

Очень часто некоторым студентам ставлю хорошую оценку без решения задачи, только за один единственный вопрос: а зачем нужен такой алгоритм, если он оптимизирует задачу на ~0.5%. К примеру: есть функция memset, надо 128kB заполнить быстрее чем эта функция. А надо ли учить их оптимизации с учетом быстродействия современных вычислительных систем?
« Последнее редактирование: Февраль 20, 2016, 09:14 от poru » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #1 : Февраль 20, 2016, 09:16 »

Конечно надо. Сейчас на первое место ставят сроки разработки, от этого качество кода начинает сильно страдать. Оптимизацию "забывают", если нет явных просадок в производительности/ресурсах. Считаю это не правильным, с тоской вспоминаю положение дел лет 20-30 назад. Программированием занимались те кто это любил и хотел, поэтому умел, а сейчас это скатилось в покраску заборов, вместо рисования картин. Грустный

Насчет числовых показателей... там пару процентов, здесь пару процентов, а на выходе ускорились на 20. Улыбающийся
Записан
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #2 : Февраль 20, 2016, 10:43 »

Когда то в давние времена типа синклер и айбиэм часто применяли "асм"- вставки, которые повышали скорострельность), но с последующим выпуском турбоси и его привязки к процу вставки стали тормозить из-за оптимизации и можно было восхищаться разработчиками компиллеров. А сей час же питон, ява, руби, пихапи и др. выполняют то же самое но чуть дольше и нашим юзерам это визуально незаметно, пусть вместо 0.3 сек задача будет висеть 0.7, да и Х. с ним. Для больших задач в 30 мин. оптимизация снизит до 23 мин - ну и Х. с ним, скажут наши заказчики. А оптимиза стоит денег.
Кстати о ностальгии во вложении, наверняка у кого то есть круче))
Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4349



Просмотр профиля
« Ответ #3 : Февраль 20, 2016, 11:08 »

пусть вместо 0.3 сек задача будет висеть 0.7, да и Х. с ним. Для больших задач в 30 мин. оптимизация снизит до 23 мин - ну и Х. с ним, скажут наши заказчики. А оптимиза стоит денег.
Вот поэтому раньше я писал код в текстовом редакторе ed.com размером 64Кб, где даже была зашита подсветка синтаксиса для нескольких языков, а сейчас есть eclipse, который весит как все книги из библиотеки Ленина и тормозит даже на современном железе. Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #4 : Февраль 20, 2016, 11:16 »

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

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #5 : Февраль 20, 2016, 11:40 »

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

От задачи зависит. Иногда оптимизация это единственное, что позволяет продавать и стричь Улыбающийся
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Февраль 20, 2016, 11:53 »

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

От задачи зависит. Иногда оптимизация это единственное, что позволяет продавать и стричь Улыбающийся
Конечно, есть вещи, где оптимизация крайне важна. Но вот только это узкоспециализированные задачи.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #7 : Февраль 20, 2016, 11:57 »

Очень часто некоторым студентам ставлю хорошую оценку без решения задачи, только за один единственный вопрос: а зачем нужен такой алгоритм, если он оптимизирует задачу на ~0.5%. К примеру: есть функция memset, надо 128kB заполнить быстрее чем эта функция. А надо ли учить их оптимизации с учетом быстродействия современных вычислительных систем?
Хороший вопрос. Ну что "более быстрое заполнение 128Kb" никому сейчас нафиг не нужно - это точно. Но с др стороны выражение "преждевременная оптимизация" давным-давно потеряло всякий смысл и используется для отмазки любого говнокода. Нередко удается без особых усилий ускорить код в 5 и более раз. Несколько типовых вещей

- передача структур по значению (часто оправдываемая имплисит шарой). С возвратом по значению тоньше, но тоже не все гладкo

- банальная распущенность. Напр такой код вряд ли будет осуждаться на форуме
Код
C++ (Qt)
int red = qRed(image.pixel(x, y)) / 2;
int green = qQreen(image.pixel(x, y)) / 2;
int blue = qBlue(image.pixel(x, y)) / 2;
А ведь есть куда более быстрый доступ к пикселю. И, по крайней мере, никто не мешал сохранить рез-т в локальной переменной. И деление на 2 далеко не безгрешно. Но все это не считается важным, мол, "экономия на спичках".
 
Вот за такие вещи нормальный препод должен бить мокрым веником по заднице.
Записан
poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #8 : Февраль 20, 2016, 11:59 »

Цитировать
Конечно, есть вещи, где оптимизация крайне важна. Но вот только это узкоспециализированные задачи.
Узкоспециализированная задача))): был расчет для некого гироскопа на неком проце, медленно работал, оптимизация расчета заняла 2 месяца, руководство послало нахер всех математиков и купила новый проц Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #9 : Февраль 20, 2016, 12:01 »

Цитировать
Конечно, есть вещи, где оптимизация крайне важна. Но вот только это узкоспециализированные задачи.
Узкоспециализированная задача))): был расчет для некого гироскопа на неком проце, медленно работал, оптимизация расчета заняла 2 месяца, руководство послало нахер всех математиков и купила новый проц Улыбающийся
Если дешевле купить новый проц, то нафига заморачиваться с оптимизацией? У меня в проекте недавно тоже встал вопрос с ростом нагрузки и проседанием по скорости. В итоге, решили, что дешевле будет реализовать поддержку работы на нескольких серверах и докупать по серверу в год.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
gil9red
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 1805



Просмотр профиля WWW
« Ответ #10 : Февраль 20, 2016, 12:05 »

Цитировать
Конечно, есть вещи, где оптимизация крайне важна. Но вот только это узкоспециализированные задачи.
Узкоспециализированная задача))): был расчет для некого гироскопа на неком проце, медленно работал, оптимизация расчета заняла 2 месяца, руководство послало нахер всех математиков и купила новый проц Улыбающийся

Когда-то кто-то решил, что труд программиста стоит дороже, чем новая железка. Так и появилась ява Улыбающийся
Записан

poru
Самовар
**
Offline Offline

Сообщений: 103


Просмотр профиля
« Ответ #11 : Февраль 20, 2016, 12:21 »

Цитировать
Конечно, есть вещи, где оптимизация крайне важна. Но вот только это узкоспециализированные задачи.
Узкоспециализированная задача))): был расчет для некого гироскопа на неком проце, медленно работал, оптимизация расчета заняла 2 месяца, руководство послало нахер всех математиков и купила новый проц Улыбающийся

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

Для того что бы купить новый проц, а это незапланированные расходы пусть даже проц стоит 3 бакса нужно обоснование: несколько математиков, программистов, электронников, технологов, юристов, маркетинг)))))))))
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #12 : Февраль 20, 2016, 13:22 »

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

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #13 : Февраль 20, 2016, 13:24 »

ССЗБ. Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #14 : Февраль 20, 2016, 13:54 »

Не раз убеждался что купить железо помощнее оказывается лучшим решением. Беда в том что проходится "точка невозврата". Ляпнув разок-другой чем-то типа QString::split человек уверяется что это совершенно нормально, так писать МОЖНО. И все, хана. Не надо питать иллюзий, что, мол, "вот когда нужно будет, тогда и напишет оптимально, а пока нечего заморачиваться". Это как любой алкаш заявит что, конечно, он может бросить пить в любой момент - но пока не хочет.

Вот неплохая статейка на эту тему
Записан
Страниц: [1] 2 3   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.078 секунд. Запросов: 22.