![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Red Devil |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Я согласен с автором в том, что опен соурс программисты слишком непрофиссионально относятся к работе. В большенстве своем пишут на Си, те кто пишут на С++ используют его неправильно.
Стоит хотя бы исходные коды посмотреть, ужас, ужас. Естественно все будет тормозить, когда циклы не оптимизируется, пишется i++, вместо ++i, функция вызыова размерности вызывается каждый при проходе цикла, вместо того чтобы ее сохранить при начале проходе и сравнивать значение. Лишние переменные с неопределенными сроком жизни, отсуствие применения паттернов проектирования - это я его могу продолжать еще долго. Привычка пихать все в классы, ничего не разделяя. На первый взгляд кажется что типа это дело автора опен соурс, но это напрямую влияет на архитуктуру проекта и того кто будет в дальшнейшем его развивать. Большенство проектов умирают, потому что никто не хочет поддерживать тот убогий код, который был заложен автором при разработке, в том числе и сам автор. Статью читал где-то месяц назад, про программистов во всем согласен, что там написано. Сообщение отредактировал Red Devil - 20.7.2008, 11:29 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
пишется i++, вместо ++i я не знаток Си, но думаю во вменяемом компиляторе результат должен быть одинаковым. А насчет професиональности OSS-програмеров согласен. У профана скорее всего времени не будет чем-то заниматься, конечно бывают исключения. Например история про TortoiseSVN писали его несколько чуваков, пока не появился один и сказал, "блин, вас кто так софт писать научил" иначал все переделывать, теперь мы имеем, возможно, лучший SVN клиент под виндовоз, я ему как-то писал, чтобы он сделал и под линух, но он сказал, что нету времени тщательно изучать Линух, а не тщательно он делать не будет. |
|
|
Red Devil |
![]()
Сообщение
#3
|
![]() Студент ![]() Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#4
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
по опыту написания программ на ассемблере для контроллеров, а рание и для проца типа Z80, могу утверждать, что результат можно сделать по размеру кода и времени выполнения одинаковым, хотя интеловский проц редкостное говно, но я думаю и там это осуществимо. Просто у некоторых людей ума слихком много вот у них и получается как у класиков "Горе от ума"
|
|
|
void* |
![]()
Сообщение
#5
|
![]() Программист-самоучка ![]() ![]() ![]() Группа: Участник Сообщений: 429 Регистрация: 4.6.2008 Пользователь №: 193 Спасибо сказали: 28 раз(а) Репутация: ![]() ![]() ![]() |
я не знаток Си, но думаю во вменяемом компиляторе результат должен быть одинаковым разница есть, и довольно существенная, т.к. при использовании i++ расходуется памяти на sizeof(i) байт больше, т.к. создается временная копия объекта. Ниже два фрагмента кода, иллюстрирующие различия этих операторов(что происходит при их использовании): ++i
i++
Сообщение отредактировал void* - 21.7.2008, 8:57 |
|
|
Red Devil |
![]()
Сообщение
#6
|
![]() Студент ![]() Группа: Участник Сообщений: 68 Регистрация: 6.6.2008 Из: Saint-Petersburg Пользователь №: 194 Спасибо сказали: 1 раз(а) Репутация: ![]() ![]() ![]() |
Помимо этого в первом случае возращается ссылка, а во втором значение. Для простых типов между ссылкой и значением разницы еще не будет, а вот для итераторов - очень большая разница.
|
|
|
AD |
![]()
Сообщение
#7
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: ![]() ![]() ![]() |
Цитата Помимо этого в первом случае возращается ссылка, а во втором значение. Для простых типов между ссылкой и значением разницы еще не будет, а вот для итераторов - очень большая разница. Для целочисленного типа и простых итераторах для современных компиляторов разницы не будет, насколько я знаю от программистов, которые делают встроенное ПО для авиации! ![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#8
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
я говорил о вменяемом компиляторе, но не бесплатном, в IAR разницы ни какой, я давно про эту особенность Си прочитал, и смотрел результат работы разных компиллеров. в HiTech и IAR нет разницы, просто люди умеют писать оптимизирующие копиллеры. А GNU это бесплатный компиллер, с минимально возможной оптимизацией, как там прочие поживают не в курсе.
void*, пример неудачный т.к. он не объясняет причины копирования, выглядит не логично. Надо с какой-нибудь допоперацией, например:
|
|
|
Багира |
![]()
Сообщение
#9
|
![]() Злоба_дня ![]() ![]() ![]() Группа: Администратор Сообщений: 314 Регистрация: 9.10.2007 Из: Москва Пользователь №: 2 Спасибо сказали: 16 раз(а) Репутация: ![]() ![]() ![]() |
Вот вас понесло...
![]() |
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
для первого варианта псевдо ассемблер так выглядит:
для второго варианта псевдо ассемблер так выглядит:
и того один инкремент лишний. Если инкремент должен быть сложного типа данных вместо inc i вызывается функция. |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 4.7.2025, 5:13 |