LINUX.ORG.RU
ФорумTalks

Я вам сейчас расскажу почему современный софт тормозит

 , ,


1

3

И расскажу вам я это не как обычный нытик, а как обычный программист.
На очень простом примере расскажу, который будет понятен даже обычному нытику.
Есть у меня в коде объект «точка». Эта точка по довольно простой траектории носится в масштабе некоторой зоны. И мне нужно отслеживать некоторое событие связанное с этой точкой и узнать в какой координате это событие произойдёт. Точка вполне самодостаточна и никаких асинхронных событий влияющих на её траекторию нет.
Легче простого — почёркал на бумаге траекторию, разложил на треугольники, обмазал тригонометрией на уровне средних классов средней школы, обернул в цикл в котором проверяю наступление ожидаемого события. Быстро и эффективно.
Да вот только не работает нихрена. Где-то ошибка. Причём ошибка довольно странная — поначалу всё ок, а потом — хлоп — и лезут какие-то странные значения. Переполнения быть не может, да и вообще каких-то очевидных багов. Погрешности там тоже накапливаться особо негде. А формул много и они некрасивые. Плюс траектория часто меняется — много изменений, связанных с симметрией. Короче — «Дiдько ногу зломе» пока найдёт там ошибку.
И что я делаю? У меня и так есть функция, которая смещает точку. Я просто вызываю эту функцию дохренища раз. Пока не наступит нужное мне событие.
Что в итоге? Решение получилось в СОТНИ раз менее эффективное, но принципиально безбажное, в десятки раз короче по коду и намного гибче в случае если траекторию движения точки придётся кардинально изменить (например вместо прямых сделать синусоиды).
Всё работает, производительность меня удовлетворяет. И думаете я когда-то вернусь к этому коду чтобы его всё-таки довести до ума и сделать его настолько быстрым, насколько это планировалось изначально? А вот фигушки. Без очень важных причин я этого делать не буду.
И таких кусков кода в большом проекте может быть очень и очень много.
Так что хватит ныть и начинайте готовиться к апгрейду своей железяки.
Есть вопросы?

★★☆
Ответ на: комментарий от kalterfive

но в моей голове примерно так и выглядит один из правильных аспектов разработки.

+1

Sith ★★★★★
()

Таких программистов, которые могут написать сложночитаемый, неперевариваемый, немасштабируемый, но на 5% быстрее, чем это впринципе возможно, берут в гугле и яндексы.

А тех, кто за 5 минут решает задачу не задумываясь над внутренностями, называют школолой и никуда не берут.

Такие дела.

unt1tled ★★★★
()

У меня почему-то практически ничего не тормозит на проце 10-летней давности, причем далеко не самом топовом.

Правда я и не юзаю ЪIНТЪIРПРАЙЗНУЮ блоатварь на дотнете и прочие операционные системы неро.

svr4
()

Есть вопросы?

Какая у тебя военно-учётная специальность (ВУС)? Если не секрет, конечно.

pacify ★★★★★
()

Именно за это я люблю опенсорс (не весь, конечно), где я сам себе хозяин. Т.к. я никуда не тороплюсь при его разработке и пишу его в свое удовольствие - вижу говнокод и исправляю его, не гонясь за новыми фичами.

peregrine ★★★★★
()
Ответ на: комментарий от Stahl

А вот найти это место очень сложно

Где вы учились? Меня за уши таскали, если я в лабораторной работе такое делал и решал какими-то обходными путями. Пришлось научиться работать с отладчиком и логировать свои приложения для отладки.

peregrine ★★★★★
()
Ответ на: комментарий от Deleted

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

peregrine ★★★★★
()
Ответ на: комментарий от peregrine

в лабораторной работе

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

Stahl ★★☆
() автор топика
Ответ на: комментарий от peregrine

И как ты забьёшь гвоздь имея доску (хорошо если не стальную), гвоздь (хорошо если не пластмассовый) и микроскоп?

Stahl ★★☆
() автор топика

Потому что его человеки пишут руками. Придут роботы, наведут марафет.

Hertz ★★★★★
()
Ответ на: комментарий от Stahl

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

peregrine ★★★★★
()

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

abraziv_whiskey ★★★★★
()
Ответ на: комментарий от Stahl

Да так. У меня тоже немного ответственности согласно ВУС. И это хорошо. Просто когда люди говорят, что ты - быдлокодер, надо смириться. Профессиональный рост - очень нелинейная вещь, зачастую.

pacify ★★★★★
()
Ответ на: комментарий от unt1tled

А тех, кто за 5 минут решает задачу не задумываясь над внутренностями, называют школолой и никуда не берут.
за 5 минут решает задачу не задумываясь

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

bread
()
Ответ на: комментарий от pacify

Просто когда люди говорят, что ты - быдлокодер, надо смириться.

Смириться? Хм. Ну как можно серьёзно относиться к мнению мимокрокодила, который влетает в тред, орёт «ты говно» и убегает? Мне просто плевать...

Stahl ★★☆
() автор топика

Есть вопросы?

Не понял задачи.

PHPFan
()
Ответ на: комментарий от Behem0th

Хм... Отличная идея. Думаю музыку можно украсть у Вагнера... Похороны Зигфрида хорошо подойдут:)

Stahl ★★☆
() автор топика

обычный программист.

ты не программист, а имитация программиста. Неубедительная имитация

Harald ★★★★★
()

И думаете я когда-то вернусь к этому коду чтобы его всё-таки довести до ума и сделать его настолько быстрым, насколько это планировалось изначально? А вот фигушки. Без очень важных причин я этого делать не буду.

А вот надо!

bvn13 ★★★★★
()

Ты не первый. По алгоритму маляра Шлемиля работали со строками, оканчивающимися нулём, сишники.

iZEN ★★★★★
()
Ответ на: комментарий от tcler

неизвестно, сколько еще мин покоится в коде

клиенты разминируют! чо в первый раз что ли?

der_looser ★★
()

Где-то ошибка. Причём ошибка довольно странная — поначалу всё ок, а потом — хлоп — и лезут какие-то странные значения. Переполнения быть не может, да и вообще каких-то очевидных багов

что значит «где-то» ? ты программу бананом проектировал?

darkenshvein ★★★★★
()

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

Quasar ★★★★★
()

Есть вопросы?

ты только что признался в говнокоде и костылестроении вместо исправления косяков. вопрос один: зачем это здесь?

Iron_Bug ★★★★★
()

Короче. Тебя тут уже много раз обосрали, смысла вроде больше нет. Но. Я тебя обосру тоже. Для надежности. Без обид :)

Oberstserj ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.