Тема открыта по просьбе жителей Королевства и посвящена обсуждению вопросов оптимизации кода. Выставляйте свои лучшие и худшие тексты и не стесняйтесь их обсуждать. В споре рождается истина. Или, по крайней мере, оптимизация.
Всего в теме 737 сообщений
Добавить свое сообщение
Отслеживать это обсуждение 
- Тестирование проекта. Отладка.
- Подводные камни
- Централизованная обработка ошибок
- Бета-тестирование
- Давайте учиться на ошибках.
- Почему программисты допускают ошибки?
- Автоматизированные тесты для GUI
- О системах контроля ошибок
№ 297 13-09-2005 13:09 |  |
Ответ на »сообщение 296« (J.K.J.)
___________________________
Сходил по ссылке.
Основной вывод исследования: правильно выбрав сочетание аппаратной платформы и компилятора можно для конкретной задачи выиграть в быстродействии в 2 раза. (VB с дистанции сняли).
Основной вывод для программистов - только 3% программистов, занимающихся сложными вычислительными алгоритмами должны обращать на это внимание. Для остальных гораздо важнее скорость разработки, все равно ПО не будет компилироваться под разные процессоры с разными ключами, тем более на разных компиляторах.
Если бы для большинства программистов быстродействие имело решающее значение, VB давно скончался бы в страшных корчах.
№ 296 13-09-2005 12:45 |  |
>>>Что-то я Вас не понимаю.
:))). Не понимаете, потому что у нас нет особых противоречий во вглядах - так, "базарим" немножко, чтобы не скучно было :). Просто я больше значения придаю качеству компилятора, чем Вы. Ну разве это предмет для настоящей дискуссии? Все равно без компилятора нельзя. Так какая разница, какое значение мы будем ему придавать? Можно сказать, что это вопрос личных пристрастий, не более того.
>>>Пользователь не увидит разницы
Конечно! На то он и пользователь, чтобы ничего не видеть, кроме своих документов :). Это мы, разработчики должны видеть дальше и предлагать ему более эффективные решения. Кстати, вот еще один предмет для обсуждения. Если на самом деле нет разницы, то почему эти языки и среды плодятся и размножаются, как кролики? Языков вместе со скриптовыми уже штук за 100, наверно, перевалило. Недавно случайно наткнулся на язык бразильского происхождения :). Lua называется. Скриптовый, что-то есть от паскалевского синтаксиса. В общем в мире примерно каждый месяц рождается новый "язык программирования". Отличное поле, чтобы заморачивать пользователей новыми красивыми ярлыками :))).
>>>А вот умение дать заказчику готовый продукт,
>>>пока программист на С или ассемблере только
>>>начал отладку, дорогого стоит.
Я вот только с этим Вашим подходом не согласен. Вы все время пытаетесь на "ту сторону" поставить каких-то "кроманьонцев", вооруженных только Ассемблером и "голым" языком Си в редакции Денниса Ритчи. Признайтесь - Вы сами этих монстров выдумали. Даже я, ярый поклонник "хорошей" компиляции и то стараюсь работать в условиях высокопроизводительных визуально-компонентных сред. А образ "врага" с одним голым Си+Ассемблером я только в кино видел.
>>>Компилятор Delphi 7 ничуть не менее
>>>эффективен, чем в Delphi 2.
Можно полюбопытствовать на основании каких критериев и тестов Вы сделали этот вывод? Сколько тестов прогнали, на каких задачах-данных и в каких условиях? Насколько репрезентативны результаты? А то что-то непонятно. Люди стараются, замеряют компиляторы вдоль и поперек, получают бенчмарки, делают выводы... А вот так запросто: да, фигня, все это! Не менее эффективен и все тут. Чтобы Вы ваши исследования и измерения могли бы сопоставить с источниками моих цитат даю адресок:
http://itc.ua/article.phtml?ID=15800&IDw=33&pid=52
Не знаю, может это и дребедень. Но там хоть конкретные сравнения проделаны. Дайте свои результаты, тогда это будет убедительно: да, на самом деле 7-ой компилятор дает такие же бенчмарки, что и 2-3. А иначе просто слова получаются.
№ 295 13-09-2005 05:10 |  |
Ответ на »сообщение 293« (J.K.J.)
___________________________
Что-то я Вас не понимаю.
На типовых задачах автоматизации и на современных компьютерах без разницы, на чем вы пишете: на Delphi, VB, C++, Java и пр. Пользователь не увидит разницы (если, конечно, не писать специально тормозных алгоритмов).
А вот умение дать заказчику готовый продукт, пока программист на С или ассемблере только начал отладку, дорогого стоит.
PS. Компилятор Delphi 7 ничуть не менее эффективен, чем в Delphi 2. Вот RTL и VCL распухли, и готовые программы действительно работают чуть медленнее. А насколько процентов - очень сильно зависит от задач.
№ 294 13-09-2005 04:46 |  |
Ответ на »сообщение 293« (J.K.J.)
___________________________
А скорость действительно перестала быть главной характеристикой. В пробках стоять лучше в машине с мягкими сидениями :)
Современные интерактивные программы занимаются в основном тем, что ждут реакции пользователя. И пользователю все равно, реагирует программа за сотую секунды, или тысячную.
Конечно есть задачи, для которых быстродействие критично, но люди, которые ими занимаются выбирают инструмент не так, как создатели очередной базочки данных. И их меньшинство. Потеряв в эффективности компилятора вдвое, но уменьшив вдвое скорость разработки, поставщик среды программирования увеличит, а не уменьшит долю на рынке.
Еще одна проблема оптимизации по скорости состоит в том, что различные версии процессора имеют разное соотношение скорости выполнения различных команд. Оптимальный для PII, код не будет таковым для PIII. И отслеживать эти различия все сложнее, да и создавать версии программы для разных компьютеров никто уже не будет.
№ 293 12-09-2005 12:58 |  |
>>>Программисты выбирают, на чем им разрабатывать
>>>программы совсем не поэтому. Потому и столь
>>>велика популярность Visual Basic и Delphi.
Вот тут Вы правы только на 50%.
Программисты, которые действительно выбирают, а не "хавают" то, что им подсовывает так называемый "массовый рынок" и "массовое сознание", эти программисты прекрасно знают, что к чему. И Delphi они выбирают отчасти потому, что, по крайней мере, в первых ее версиях "компилятор от Борланда" был сделан на "отлично" (было же время, когда не позорили ребята марку языков из семьи Паскаля).
Небольшая цитата из аналитического материала по сравнению производительности компиляторов:
----------------
В числе различных систем программирования, реализующих этот язык (Pascal-прим.мое,J.K.J.), следует отметить Delphi 2, 1996 г. (R=1311) и Delphi 3, 1997 г. (R=1308) как среды, которые обеспечивают наиболее эффективный с точки зрения быстродействия результат компиляции. Использование последующих версий Delphi (от четвертой до седьмой -- R=773) приводит к уменьшению быстродействия вычислительного теста приблизительно на 69% по отношению к Delphi 2/3.
КОНЕЦ ЦИТАТЫ.
-----------------------
Жаль, конечно, но похоже, что Борланд выступает на Вашей стороне. С каждой новой версией компилятор становится все медленнее. Скоро совсем остановится :)).
А теперь другая цитата из того же текста:
------------------------
Наихудшие результаты продемонстрировал Microsoft Visual Basic 6, 1998 г. (R=28). Производительность откомпилированного в нем вычислительного теста в 24--86 раз меньшая, чем результаты других компиляторов.
КОНЕЦ ЦИТАТЫ.
------------------------
Тоже информация к размышлению. Сверхпопулярный VB имеет самый неповоротливый компилятор. Похоже Вы опять выиграли! Для широких масс это не главное.
Но мне эта тенденция все равно не очень по душе. Подумайте только. Улучшение визуальности и компонентности среды сопровождается ухудшением характеристик компилятора. Прямо, как закон сохранения энергии :).
Вам может уже надоели мои примеры из автомира. Но мне это что напоминает: вот вам новый Мерс, у него более мягкие сиденья, у него усилен руль, он жрет еще больше бензина - у него только один недостаток: скорость, зараза, стала меньше. Ну, да это не главное...
№ 292 12-09-2005 00:56 |  |
Ответ на »сообщение 291« (panda)
___________________________
>>> в большинстве случаев неважно, какой в среде разрабротки компилятор
А с этим никто и не спорит. Другая сторона доказывала, что компилятор для языка невозможно создать на том же самом языке. Так что незачем было такие баталии разводить :-)
№ 291 12-09-2005 00:36 |  |
Ответ на »сообщение 289« (Geo)
___________________________
Народ! Вы все время спор сворачиваете совсем в другую сторону. Никто не пытается доказать, что в инструментальных средствах должен быть обязательно очень крутой компилятор (даже в ущерб остальному). Речь идет о том, что компилятор (хоть какой-то) должен быть.
Ну почему же в другую сторону? Я пытаюсь донести очень важный момент: в большинстве случаев неважно, какой в среде разрабротки компилятор. Программисты выбирают, на чем им разрабатывать программы совсем не поэтому. Потому и столь велика популярность Visual Basic и Delphi.
№ 290 10-09-2005 02:54 |  |
>>>Речь идет о том, что компилятор (хоть какой-
>>>то) должен быть.
Вот именно!!!
Написал очень много всего и понял, что не сказал самого важного :).
1. Я всегда говорил о компиляторе не в "узком" смысле слова, а в широком: как о программе, которая обеспечивает процесс ТРАНСЛЯЦИИ программы. И поэтому в равной степени мои слова относятся и к обычным компиляторам, и к компиляторам "ON-FLY", и к интерпретаторам. Ведь интерпретатор это просто разновидность транслятора, в котором трансляция и выполнение кода совмещаются.
2. Библиотеки и прочие "прелести", о которых так жарко говорят в последних постах. Все эти элементы среды - они, что, не являются в конечном счете результатом компиляции?!!! Или это все получено волшебным образом, так сказать "из воздуха"? Нет, уважаемые. Любой код, который "крутится" на Вашем компе - это результат компиляции, или, если хотите, ТРАНСЛЯЦИИ.
№ 289 09-09-2005 14:09 |  |
Ответ на »сообщение 284« (panda)
___________________________
>>> на чем Вы предпочтете ездить - на ВАЗ 2110 с двигателем Opel на 2 литра или на Volkswagen Passat с двигателем на 1.6 литра?
Я предпочитаю ездить в автомобиле с двигателем. Если двигателя нет, то все остальное -- до лампочки :-)
Народ! Вы все время спор сворачиваете совсем в другую сторону. Никто не пытается доказать, что в инструментальных средствах должен быть обязательно очень крутой компилятор (даже в ущерб остальному). Речь идет о том, что компилятор (хоть какой-то) должен быть.
№ 288 09-09-2005 12:07 |  |
>>>Если Вы предпочитаете аналогию с автомобилями,
>>>пожалуйста: на чем Вы предпочтете ездить - на
>>>ВАЗ 2110 с двигателем Opel на 2 литра или на
>>>Volkswagen Passat с двигателем на 1.6 литра?
На Volvo V50 :o)).
Добавить свое сообщение
Отслеживать это обсуждение 
Дополнительная навигация: |
|