Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2010, 14:58   #61
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Цитата:
Сообщение от BOBAH13 Посмотреть сообщение
Уж простите, но не надо чушь писать.
Отчего же чушь, очень даже точное замечание к соответствующему посту.

Цитата:
по вашему C#/WPF к примеру, не оптимизирован? т.е. исходя из этого, тысячи человекочасов в Microsoft ушли даром, и писались, не оптимизировано?
Я писал конкретно о VCL... Точно С# в силу своих особенностей работает медленней С++ оспаривать не будете?

Цитата:
Отрисовка графики на GPU с использованием Direct3D не оптимизировано?
Насчет этого ничего сказать не могу, ибо не в курсе.

Цитата:
Одно дело, что на хорошем инструменте один человек пишет зная что пишет, и все быстро и качественно работает, другое дело, что другой пишет с помощью метода copy-past.
Ну это да , есть такое, но тенденция.

Цитата:
И вообще, что значит "код не оптимизирован"?
Написан спустя рукава, ощутимо тормозит - например инсталляторы на С#... Раз уже речь пошла о DirectX, брал я чей-то самопальный 10-й версии. Хотите разницу? Раз в 10-ть меньше по размеру.

Цитата:
Раз осмысленные факты, и слова многих людей, которые прошли данный "этап" в самообучении программированию, для вас ничего не значат, то смысл темы просто теряется и продолжение темы не имеет никакого смысла. Как я считаю.
Можно мое ИМХО?
1. Опыт и знания это не одно и тоже. Одно дело самому вляпаться в дурнопахнующее или получить граблей про меж глаз и сосвем другое говорить книжными фразами.
2. Никогда не верил в авторитет и "слова многих людей", так как неоднократно убеждался как часто ошибаются "многие". Чего и ТС желаю.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 06.12.2010, 15:02   #62
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
2. Никогда не верил в авторитет и "слова многих людей", так как неоднократно убеждался как часто ошибаются "многие". Чего и ТС желаю.
Я ведь не выдумал все что написал! Это собственный опыт, т.е. по вашему я нагло брешу?! Эммм... ну что я могу сказать, напишу наверное тоже самое на что отредактировал свой пост
Цитата:
Ааааа ну его... разбирайтесь, это бесполезно.
UPD:
Смеха ради, есть же проект ReactOS (вроде), переезжайте на него, он ведь меньше чем Windows 7 весит (я так думаю). По моему смешно звучит как то. Т.е. один человек напишет ОС, она ведь будет меньше размером, быстрее работать, меньше ресурсов есть

p.s. повторюсь, это просто смешной пример.

Последний раз редактировалось BOBAH13; 06.12.2010 в 15:08.
BOBAH13 вне форума Ответить с цитированием
Старый 06.12.2010, 15:09   #63
spamer
Software Developer
Старожил
 
Аватар для spamer
 
Регистрация: 19.12.2008
Сообщений: 2,070
По умолчанию

Эх...похоже, что тема зашла в тупик...
Ну а ТС, я так думаю, через год-другой осознает сам, какой ему использовать инструмент, что бы не остаться в проигрыше...
Будь проще и люди к тебе потянутся
spamer вне форума Ответить с цитированием
Старый 06.12.2010, 15:18   #64
Vikenty
Заслуженный флудер
Участник клуба
 
Аватар для Vikenty
 
Регистрация: 31.03.2010
Сообщений: 1,473
По умолчанию

Цитата:
Сообщение от Utkin Посмотреть сообщение
Я писал конкретно о VCL... Точно С# в силу своих особенностей работает медленней С++ оспаривать не будете?
Сравнивал - C# намного быстрее
Vikenty вне форума Ответить с цитированием
Старый 06.12.2010, 15:49   #65
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

(форум не пропустил пост из-за размера - пришлось побить на три части)

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Значит оптимизация не важна? Пущай работает как работает и пофиг, что оно может работать в 10 раз быстрее?
Из одной крайности, да в другую....

Что непонятно во фразе "делать то, что реально важно"?

Будет программа на щелчок мыши реагировать 200 мсек - будем исправлять. Нет - ну и нафиг надо?

Ты меня извини за прямоту, но по этой фразе сразу видно, что опыта у тебя - с гулькин нос. Ни один программист не станет оптимизировать всё подряд. "Premature optimization is the root of all evil". Никогда раньше не слышал? Сначала пишется программа. Потом её тестируют и находят узкие места. Потом эти места оптимизируют. Вот и всё. Ты потратил 5% усилий для улучшения эффективности программы на 98%. В чём смысл потратить ещё 95% усилий, чтобы получить прирост производительности в 2%?

(окей, на самом деле, в этом плане гораздо более важны предварительные этапы: проектирование и дизайн)

_______________

(слова ниже не обращены ни к кому лично, это просто изливание моих мыслей)

Вы поймите сначала, откуда это идёт. А идёт это из той ровно той оперы, "раньше солнце светило ярче, а трава зеленее". Ровно и всего. Старики вспоминают свою радостную молодость:

- Эх, как мы классно тогда посидели, сумели втиснуть код в 64 Кб, помнишь?
- Точно, клёво было. Не то, что щас, все проги да с установщиком, а молодёжь в этом ничё не понимает - школота!

(у кого чё, конечно)

Вы меня извините конечно, но у меня бабки под окном заводят не хуже.

Времена меняются, и то, что было актуальным вчера, сегодня уже не актуально. Face it. Смиритесь. Живите дальше. Скулежом по поводу безвозвратно ушедших дней вы ничего не измените.

Давайте я проведу аналогию. Мне кто-то сказал, что у меня неплохо получается это делать.

Вот два строителя в древнем мире:
- о, ты это клёво придумал, блоки-то так поднимать. Какую конструкцию забабахаем!

Сегодня:
- вот раньше же ведь строили - никаких подъёмных кранов не было. А теперь? Куда ни плюнь - без крана никак. А стоят они - ого-го! Это всё заговор фирм производителей кранов, чтоб по миру нас пустить!
- слушай, а мож без крана построим?
- эт как так?
- да вот как раньше-то строили, чё мы, хуже что-ли?

Почему так никто не делает, сэкономишь ведь на технике-то? (ладно, представим что рабов им подгонят) Потому что тогда дом будет готов не через два года, а через двадцать лет. Понятно в какие дали пошлёт таких "строителей" заказчик?

Окей, ещё пример, быть может, такое даже происходило.

Вы пришли к пользователю вашей программы и сказали:
- Я выпустил новую версию! Она офигенна! Я туда так вложился, столько всего сделал, сидел целых два месяца день и ночь на кофе. Меня даже девушка бросила. Прям горжусь собой!
- Оу, чувак, это офигенно клёва! Наверное, там теперь можно закачивать фотки в Контакт?
- Нет!
- А куда-нибудь закачивать?
- Да нет же!!!
- O_o А чё ж ты тогда сделал-то?
- Я уменьшил размер программы с 8-ми мегабайт до... затаи дыхание... до 800 килобайт!! В 10 раз! На порядок! Ты прикинь?!
- O_O Ты чё, дибил?

(упреждающее предупреждение для модератора: это я ни про кого лично, это не наезд и не оскорбление)

Я вот наблюдаю за такими людьми. Вы знаете, что я думаю? Это болезнь. Да-да, это болезнь, которая поражает компьютерных технарей. Им просто прям физически неудобно от того, что их программа не оптимальна. Не существует никакой иной причины объяснить их стремление заниматься этим. Они не могут это объяснить. Любой аргумент, который они приводят, просто неприменим к тому, для кого они пишут программу: пользователю. Например:

- (компьютерщик, поражённый болезнью) но если бы все так делали, то ты смог бы записать на диск больше программ!
- (нормальный человек) ????... чего? Да я просто удалю один фильм, а ещё лучше - пойду прикуплю двухтерабайтник, давно пора уже, а то музыку складировать некуда.

Если вам будет от этого легче, то я скажу вам, что человеческая ДНК тоже содержит мусорные участки (я втайне надеюсь, что все больные этой болезнью люди взорвутся от такого противоречия - это была слабая попытка имитировать Реймонда Чена).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 06.12.2010 в 15:51.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 15:50   #66
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Это не обязательно должен быть программист, напротив - программисты болеют этой болезнью в раннем возрасте, после чего идут дальше. Но вот продвинутые пользователи, не являющиеся программистами, часто не способны продвинуться дальше. В одной из командировок я видел на предприятии вполне взрослого дядьку (ближе к 40, наверное), который (на полном серьёзе!) ругался, что наш комплекс занимает (о, ужас!) целых 300 Мб! (я не помню, сколько он весит, но пусть будет 300) Ругался он, сидя на такой машине, что я и сейчас облизываюсь. Два моника непомерных размеров, 8 Гб RAM, четырёхядерник (хз частота, но соответствующая), RAID массив из 4-х винтов и видюха того же плана (одна). Да, 300 мегабайт, ай как плохо... У меня язык чесался ответить: "ты бы предпочёл купить нашу программу через 15 лет за вдесятеро большую сумму, так что-ли?", но... заказчик-с.

Программы занимают мизерную часть содержимого компьютера. Обычному пользователю по барабану, занимает ли она 1 или 80 Мегабайт. Ему это не интересно. Ему интересно смотреть фильмы, слушать музыку, играть в игры, общаться с друзьями, и т.д. Если вы сделали офигенный плагин для WinAmp-а, который весит 100 Мегабайт - вы думаете кто-то будет смотреть на (примечание для зануд, не умеющих вычленять контекст: НЕ офигенный) плагин на 100 Кб?

Кому интересно, что Fallout занимает 15 Гб (или сколько там? Я не знаю, хотя он у меня стоит), если он позволяет тебе погрузиться в атмосферу мохавских пустошей на FullHD? Школьникам и безработным? Ну-ну. Ориентируйтесь и дальше на эту аудиторию - это верный путь в светлое будущее.

Напоследок хотелось бы сказать ещё про чисто технический момент. Конечно, новичок видит, что программа A < программы B и потому программа A лучше - это же очевидно! Но при этом он совершенно упускает из виду, что уменьшение размера не даётся за бесплатно. Закроем глаза на уже упомянутые факторы, посмотрим с такой стороны: чем достигается уменьшение размера? Ну, например, отказом от большой толстой библиотеки и реализацией функционала самому. Почему это приводит к уменьшению размера? Потому что вы пишете только тот код, что непосредственно используется в вашей программе. Что ещё? Ну, вы заменяете неэффективные конструкции эффективными. Что не так с этим подходом? Давайте загибать пальцы:

- С высокой долей вероятности новичок напишет говно-код, вместо использования качественного библиотечного кода.
- Почти наверняка ваш код не будет обрабатывать редкие или граничные случаи - ведь они почти никогда не случаются! Зачем тратить место? Тем более, что "у меня всё работает".
- Ради уменьшения размера вы жертвуете другими качествами программы. Например, надёжностью. Вы не станете расставлять фреймворк проверок и обработки ошибок, как это делает библиотека - ведь это ест место и время!
- Выбрасывая универсальный код и делая код конкретный вы снижаете гибкость и возможность к модификации. Используя универсальную библиотеку, вы можете изменить поведение, изменив всего пару строк. Используя же конкретный код - вам нужно его выбросить и написать заново.
- Сюда же относятся различные модификации на оптимизацию, переписывание на ассемблере и т.п. Зачастую это делает исходный код настолько жёстким, что его нельзя тронуть в одном месте, чтобы не поплыло в другом (хотя бы в плане оптимизации). Но кому это важно, ведь программу я написал и вот она: маленькая? Чувак, IT - это самая быстроразвивающаяся отрасль. Программа, которая не нацелена на модификацию - мертва ещё до выхода первой беты.
- Часто довольно быстро у вас отваливается читабельность кода. Код, написанный с применением библиотеки поддержки легко читать, изменять и сопровождать. Код, написанный на коленке, реализующий заново только в минимально необходимом объёме функционал библиотеки, щедро посыпанный ассемблерными "оптимизациями" (каждая из которых нейтрализуется случайной задержкой головок диска) становится просто не читаем для стороннего человека - а иногда и для самого автора полгода спустя. Я напомню очередную прописную истину: код пишется НЕ для машины. Код пишется для человека.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 15:51   #67
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Обычно этой болезнью заболевают новички-программисты. Конечно же, они слышат "ай как плохо, программы-то все большие!". И, конечно же, они заболевают этой идеей. Ведь "A < B" выглядит так просто и это так просто осознать. А вот идея про эффективность и практичность - это уже сложнее. "Это всё скучно и не интересно! А вот тут я лучше щас на ассемблере перепишу..."

Кроме того, они видят, что (похоже) все вокруг не прониклись этой идеей. И им кажется, что вот она, эта ИХ идея. Которая принесёт им... ну что-то принесёт, да. "Я напишу такую же программу, только она будет весить всего 1 мегабайт вместо этих двадцати! И, конечно же, она будет гораздо удобнее - все будут использовать мою программу, ведь пользователь увидит, что она лучше той, потому что она компактна и эффективна".

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

Успех программы не связан с её размером. Никак.

Когда программист со временем набирается опыта он понимает, что это всё баловство, детские шалости. Ну и отлично. Ничего в этом страшного и постыдного нет. Мы все переболевали этой болезнью (и многими другими!). И не бойтесь спрашивать как уменьшить размер программ, как писать без VCL, экспериментируйте, учитесь - всё это правильно, это набор опыта. Но только если при этом вы попробуете открыть рот на тему: "Бла-бла-бла, эта программа такая раздутая, это просто ужасно, ABC намного лучше нежели XYZ, потому что она очень мало весит" и т.п. - вам тут же дадут по лбу.

Ребят, вокруг столько всего интересного, мы живём в удивительное время. Как там сказал Фредерик Брукс:

Цитата:
Область связанных с компьютерами знаний претерпела взрыв, как и соответствующая технология. Будучи аспирантом в середине 50-х, я мог прочесть все журналы и труды конференций. Я мог оставаться на современном уровне во всей научной дисциплине. Сегодня же мне в моей интеллектуальной жизни приходится с сожалением расставаться с интересами то в одной, то в другой подобласти, поскольку количество документов превысило всякую возможность справиться с ними. Масса интересов, масса замечательных возможностей для учебы, исследований, размышлений. Чудесное затруднение! Не только конца не видно, но и шаг не замедляется. В будущем нас ожидают многие радости.
У меня вечно не хватает времени. То надо прочитать, это сделать, сё написать. Столько всего вокруг! Учиться, работать - сколько хочешь.

Чем занимаетесь вы? Уменьшили размер программы. Аплодисменты.

Ребят, я не знаю, вам действительно нечем больше себя занять? Мне, право, вас жаль...

P.S. Справедливости ради, надо заметить, что гонения за минимальным размером программы вполне имеет право на существование как минимум в одном случае (примечание для зануд, не умеющих вычленять контекст: мы находимся в мире Delphi и Windows; не надо тут начинать про часы с 4 Кб памяти): искусство. Да, некоторые занимаются этим для собственного удовольствия и как некий вид искусства (примечание: толпа народу, стенающая на форумах: "ну подскажите же, как тут уменьшить", к этой категории не относится). Ничего не имею против - я только за. Но если только такой программист попробует полезть ко мне со своим "вот как надо писать, если бы молодёжь думала об оптимизации, бла-бла-бла", то получит своё законное ПНХ. К счастью, человек, занимающийся такими вещами, обычно адекватен и понимает, что к чему.

P.P.S. Ах, да, прежде чем писать мне гневный ответ в стиле "но для меня размер важен!", я напоминаю вам, что я говорю об обычных пользователях. Тех, которых 90%. Тех, которых интересуют фильмы, игры, друзья и музыка. Вы - не типичный пользователь. Вы технарь. Примите это во внимание, прежде чем писать ответ (я полагаю, что вы достаточно умны, чтобы это сделать).

P.P.P.S. Ну и, конечно же, ссылка в тему. Джоэль Спольски - человек с весьма богатым жизненным опытом и пройденным путём.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.

Последний раз редактировалось GunSmoker; 06.12.2010 в 16:08.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 16:01   #68
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Вот она, фраза, отображающая суть - их можно и к VCL пристроить. Можно, но НИКТО не пристраивает, потому, что пофиг на оптимизацию и время выполнения. А чё, зато стекляшки есть!
Берёшь ScanLine и юзаешь. В VCL, да. В чём проблема? (нафиг ScanLine, я тогда вообще массив через GetMem выделю и в нём всё сделаю) Да и вон, в FillRect уже тыкали.

Почему ты считаешь, что ScanLine в VCL - низзя, а Pixels[] - нормально? А я вот скажу, что SetPixel в WinAPI - OK, а GetDIBits - низзя. Чем это отличается?

Реально ты сейчас сравнил не VCL с WinAPI, а велосипед с карьерным грузовиком (установка единичного пикселя vs прямая (к тому же блочная) модификация памяти). Это разные инструменты для разных задач. Оба из которых к VCL и WinAPI не привязаны.

Цитата:
Сообщение от Alex Cones Посмотреть сообщение
Но много ли Вы знаете человек, которые так делают?
Да все так делают! Чистить канву попиксельно будет только больной со справкой.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 06.12.2010, 16:06   #69
Alex Cones
Trust no one.
Старожил
 
Аватар для Alex Cones
 
Регистрация: 07.04.2009
Сообщений: 6,526
По умолчанию

Цитата:
прежде чем писать мне гневный ответ в стиле
Ну почему обязательно гневный? Вы вполне ясно дали понять, что 95% (Вы немного ошиблись с количеством, не постесняюсь дать пруф) не задумываются над внутренним содержанием и считают, что чем больше размер - тем круче.
Цитата:
искусство.
Хорошо, тогда я буду считать, что занимаюсь искусством создания программ, чтобы убрать от себя образ подъездной бабки скажу, что с данного момента, я презентую искусство, а не образ. Хотите - восторгайтесь как от полотен Да Винчи, хотите - говорите "Фу" как на произведения Гитлера. Теперь я буду свободным автором, и создаю произведения для себя. Если кто-то хочет присоединиться - я рядом. Нет - обойдемся без Вас.
SQUARY PROJECT - НАБОР БЕСПЛАТНЫХ ПРОГРАММ ДЛЯ РАБОЧЕГО СТОЛА.
МОЙ БЛОГ
GRAY FUR FRAMEWORK - УДОБНАЯ И БЫСТРАЯ РАЗРАБОТКА WINAPI ПРИЛОЖЕНИЙ
Alex Cones вне форума Ответить с цитированием
Старый 06.12.2010, 16:12   #70
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

GunSmoker, прямо крик души .
Знаете почему некоторые производители коммерческого программного обеспечения не любят Линукс ? Он не вынуждает пользователя покупать новые программы и новое железо .
Да кто будет думать о байте у Вас же винт террабайтный . Задумайтесь - почему у Вас винт террабайтный?
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика

Последний раз редактировалось Utkin; 06.12.2010 в 16:16.
Utkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Товарищи модераторы за что удалили мою Тему? Или я что то не втыкаю!? Олег Егоров Помощь студентам 0 19.05.2010 19:39
Товарищи старшие! Prihlop Помощь студентам 1 19.11.2009 21:20
(VB) Подскажите мне товарищи... phantom4eg Помощь студентам 1 12.09.2009 20:43