Производительность кода vs его лучшая читабельность #296851


#0 by DGorgoN
Очень часто возникает вопрос - что лучше, быстродействующий код или читабельный и более понятный. Кто как решает - Либо написать в 2-4 раза больше кода, либо пожертвовать производительность..
#1 by IUnknown
читабельность кода для конечного пользователя не важна, а именно ему работать более всего с тем, что ты на кодишь... одназначно производительность
#2 by прапр
комменты рулят. Главное чтобы он правильно работал
#3 by у лю 427
вообще то есть правило - читабельный код как правило, более производительный....
#4 by DGorgoN
пример могу показать когда не так:
#5 by Лефмихалыч
если код правильный (производительный, стабильный), то нечитабельным его может делать только неправильное именование переменных и отсутствие оформления
#6 by Скользящий
Производительность рулит сейчас. Читабельность рулит потом. Когда надо код переделывать.
#7 by Лефмихалыч
есть, конечно, исколючения. Например, правильное, но очень длинное условие... В подобных случаях лучше все-таки читабельность, иначе масштабировать и поддерживать систему будет дороже
#8 by DGorgoN
тзЗначений = СоздатьОбъект("ТаблицаЗначений"); тз.Значений.Загрузить("тзДанных"); Таб = СоздатьОбъект("таблица"); тзЗначений.выбратьСтроки; //********* Пока тзЗначений.получитьСтроку=1 Цикл Если условие = 1 тогда   Если тзЗначений.значение = 1 тогда     Таб.ВывестиСекцию("Секция1");   Иначе     Таб.ВывестиСекцию("Секция2");   КонецЕсли; Иначе     Таб.ВывестиСекцию("Секция1"); КонецЕсли; КонецЦикла; //********* либо //********* Если условие = 1 тогда Пока тзЗначений.получитьСтроку=1 Цикл   Если тзЗначений.значение = 1 тогда     Таб.ВывестиСекцию("Секция1");   Иначе     Таб.ВывестиСекцию("Секция2");   КонецЕсли; КонецЕсли; КонецЦикла; Иначе Пока тзЗначений.получитьСтроку=1 Цикл     Таб.ВывестиСекцию("Секция1"); КонецЦикла; КонецЕсли;
#9 by DF_Slayer
Где производительность не критична, там надо стараться читабельно писать, ну а где она необходима... там она необходима. За читабельность никто программиста не похвалит.
#10 by DGorgoN
Вот простой код, либо условие в цикле, либо условие выносим из цикла - по другому никак (думал уже).. Вот и возник вопрос - с условием в цикле работает час, с условием не в цикле - 20-30 минут. Но проблема в том, что отчет постоянно дописывается. В итоге трудно следить за всеми ветками программы - пока оставил условие в цикле, отчет по времени не очень критичный..
#11 by Лефмихалыч
не катит - втрой вариант такой же не читабельный
#12 by DF_Slayer
тзЗначений - что за странное название переменной?
#13 by Лефмихалыч
А! Или это работчий, типа, код, который читать не возможно... тупая ветка
#14 by MMF
Всегда следует предпочесть читабельность и понятность кода перед производительностью. Все-таки здорово, что в 1С нет указателей, асмовых вставок, выделения памяти и прочих "опасных" для неокрепших мосхов 1с-ников возможностей, даже в этой коротенькой теме сплошные "ускорители"
#15 by Херрес
только читабельность имеет значение ибо читабелность - это моё время (самое дорогое что у меня есть)
#16 by ЗлобнийМальчик
по идее ассамблер - самый производительный код объектно-ориентированные языки по сравнению с ним значительно отстают. А если ещё и интерпретируются в промежуточный язык(Java/C#). Тем не менее  сейчас всё таки   пишут преимущественно в ОО языках и 1С;)))))). Так что понятность и читабельность - важнее
#17 by DGorgoN
Это к примеру, воображалка не сработала Вот хочу спросить - что лучше. Везде код рабочий, только 1-й читать сложно, а второй проще. Но производительность обратная..
#18 by Asmody
ты издеваешься?
#19 by Лефмихалыч
объектно ориентированные и объектные языки ценны и используются вовсе не по причине читабельности
#20 by DGorgoN
Не согласен, рулят асм + анси си. На асме программать еще уметь нужно..
#21 by DGorgoN
Если условий не одно а несколько, это я к примеру привел - не издеваюсь..
#22 by Лефмихалыч
оба куска надо утопить в топке, читать не реально :)
#23 by Лефмихалыч
в этом случае делают так :)
#24 by ЗлобнийМальчик
хммм а почему??? по крайней мере в книжках пишут что де программы на паскале и других алгоритмических языках стали такие большие что в них никто ни хрена не понимал - посему придумали ООП всё мной сказанное не претендует на истину в последней инстанции
#25 by GenV
Зависит от использованности участка кода в других местах и предполагаемых возможностях его модификации. Иногда достаточно просто оставить подробный коммент для участка кода.
#26 by Asmody
вообще ИМХО, если Если..Тогда и следующую за ним Иначе (ИначеЕсли, КонецЕсли) разделяет больше одного экрана, то код становится нечитаемым.
#27 by Asmody
кстати, в ошибка "в стиле LISP'a" - скобка не там :)
#28 by DF_Slayer
На мой взгляд весь ЗиК нечитабельный :) с ничего не дающими комментами.
#29 by Лефмихалыч
например, потому, что ОО языки в разы облегчают повторное использование кода. Потом, масштабирование опять-таки проще (не говря уже о случаях, когда масштабирование процедурной программы не возможно в силу ее и без того невдолбенных масштабов)
#30 by DGorgoN
Ну мне то что делать? код делать большим или маленьким? соотв. быстрым или медленным. Ладно, думаю что философский вопрос, на который никто не даст ответ - буду смотреть по времени..
#31 by у лю 427
автор - прими, помогает....
#32 by DGorgoN
:)
#33 by Innuil
А при чём тут читабельность? Если условие выносится за цикл, то и выноси его за цикл. Читабельность - это форма написания кода: выделение отступами структрнух скобок, полагаю, что компилятор 1С особо не заморачивается на комменты, пробелы и табы, а не то, что при переделке кода ты отыщешь нужную строку.
#34 by перцептрон
а комменты не помогают читабельности?
#35 by Diman000
Ветку не читал. Но: "Либо написать в 2-4 раза больше кода, либо пожертвовать производительность.." В 2-4 раза больше кода <> пожертвовать производительностью в эти же 2-4 раза.
#36 by spock
в какой читабельный, а какой производительный?
#37 by 3ato-rado
Код должен быть читабельным... ато как понаписывают..хрен поймёшь :) каменты обязательно... а важное ето скорость... какой бы читабельный код не был бы в моём отчете..манагерам пофиг если у них отчёт етот  выводится неделю :)
#38 by Ангел-Хоронитель
производительность. читабельность нах.
#39 by Jolly Roger
Брейнфак тебе в руки :-D
#40 by Torquader
В нормальных языках есть оптимизатор, который сделает код намного более производительным. А по поводу производительности сказано так: Сначала пишется удобочитаемый вариант, который проще отлаживать. Потом ищут узкие места и оптимизируют их по исполнению. Написать сразу отпимизированный код не всегда легче, но искать в нём ошибки сложнее.
#41 by PR
Тупая ветка. Никто до сих пор не сказал, что главное не читабельность или скорость, а как минимум максимальная читабельность при приемлемой скорости. Бывает, когда читабельность вообще не важна, поскольку прописывается узкое место и очень важна скорость. А чаще бывает наоборот, что при нечитабельном, но оптимизированном коде скорость выше на 5000%, но речь идет к примеру о чем-то очень быстром и пользователю пофиг, будет у него этот участок выполняться мгновение или 1/50 мгновения. Таким образом практически всегда в первую очередь важна читабельность, если только речь не идет об узких моментах, где (что важно) нечитабельный, зато оптимизированный код будет быстрее. А вообще в кои-то веки на удивление прав :)) Не забывайте так же про то, что практически любой код когда-нибудь придется править, а значит разбираться в нем :))
#42 by ado
Почему первый код читабельнее? Потому что короче? Фигня (с) Короче совсем не означает читабельнее.
#43 by ado
>Не забывайте так же про то, что практически любой код когда-нибудь придется править, а значит разбираться в нем +1000
#44 by КонецЦикла
+1 Короткий... но берет оторопь (особенно если пять условий) :) Тупая ветка, согласен
#45 by Denjs
зато пользователя ОЧЕНЬ касается когда код берется на поддержку и развитие) производительность мы нарастим в 2 раза за 10 лет - hardware-make-ры рулят. а дров в нечитабельном и плохо спроектированном коде наломаем за месяц ;) так что он вообще работать не будет. потому _В_СРЕДНЕЙ_СТАТИСТИКЕ_ рулит читабельный код.
#46 by DimG
Для полного комплект не хватает
#47 by АЛьФ
2 +1 Слова не мальчика, но мужа!
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С