Re: Об эффективности - с другой стороны
От: Glоbus Украина  
Дата: 17.11.05 13:41
Оценка: 95 (9) +7 -1 :))) :))
Здравствуйте, Pavel Dvorkin, Вы писали:

<skipped>

PD>1. Рост мощностей продолжится прежними темпами. В этом случае и для многих других задач станет возможным пренебречь эффективностью. Возможно, это коснется и настольных приложений. Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост".

PD>2. Рост мощностей замедлится. В этом случае для тех задач, для которых и ныненшняя мощность избыточна, все останется как сейчас. Но понемногу будут подтягиваться задачи, которые пока что или вообще не решаются (может быть, даже само их существование пока не осознано, так что их и не ставят), или же решаются с трудом, так как имеющиеся способы их решения вынуждены были ориентироваться на имеющиеся мощности (игры — классический пример). Доля этих задач будет возрастать, что приведет к возврату требований по эффективности написания кода.

Думается мне, все намного проще. То, что у нас тут так жестко рулит и продвигается .нет можно легко объяснить теми задачами, которые решаются. Страны экс-СССР, а также всякие Индии и Китаи, шпарят аутсорсинг, в аутсорсинг даются задачи настолько простые и дешевые, что платить за их решение тамошнему девелоперу положенную ставку просто катастрофически невыгодно — все равно что нанимать профессора убирать улицы с соответсвующими зарплатой, научной пенсией и т.п. На мой взгляд, технологии вроде .нета создаются Мс и другими конторами именно с прицелом на такие "слаборазвитые" страны — идея такова, что "белые хозяева" делают для своих "негров" такой инструмент, чтобы "негры" могли решать рутинные задачи за как можно меншую плату и в кратчайшие сроки. Весь хай-тек с его требованиями к эффективности все равно остается привелегией "белых хозяев" — в экс-совке конторы, занимающиеся более-менее наукоемкой деятельнсотью можно по пальцам пересчитать — и в этих конторах рулят вопросы эффективности и все что с ними связано. Остальная же часть — примерно 95% (думаю примерно так) — лопатат сайт за сайтом и "корпоративные приложения" за "корпоративным приложением", бухучет за бухучетом. ДУмаю не ошибусь, если скажу что подтвержеднием моих слов будет резюме первого, кто его пришлет в вашу контору — с веротяностью 0.95 там будет веб и система бухучета для какого-нить предприятия. А вот строчку наподобие "разработка ПО для систем автопилота ТУ-160" будет найти просто таки нереально. Мы — задворки ИТ, нам перепадают крохи, которые смахивает со своего стола жирный западный дядя, и для работы с этими крохами действительно не нужны глубокие знания в алгоритмизации, архитектуре и тому подобном.
Удачи тебе, браток!
Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 06:57
Оценка: 24 (4) +6 -4 :)
Решил еще раз вернуться к этому вопросу и посмотреть на него с несколько иной точки зрения.

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

Вернуться к вопросу меня побудило вот это сообщение IT. Впрочем, и до него аналогичные мнения высказывали и другие.

http://www.rsdn.ru/Forum/Message.aspx?mid=1482509&amp;only=1
Автор: IT
Дата: 11.11.05


>Павел, знаешь в чём твоя ошибка? Особенно в терминах цели vs. средсва? Нет, ты не путаешь цели со средствами, ты просто навязываешь свои цели и приоритеты другим. Ну нет у меня задач, требующих молниеносного чтения данных из файла. А если появятся, то уж на блочном чтении дело не остановится. В дело пойдёт сначала кеширование, а потом и до map-файлов дойдёт. Но пока таких нет. И не только у меня, а у подавляющего большинства здесь присутствующих, т.к. времена, когда это было действительно насущей проблемой для масс давно прошли.


Оставив в покое молиеносное чтение из файла как частный случай, рассмотрим основной постулат :

>Но пока таких нет. И не только у меня, а у подавляющего большинства здесь присутствующих, т.к. времена, когда это было действительно насущей проблемой для масс давно прошли.

Не могу не признать правоты этого высказывания. Действительно, коль уж нет — то нет. А почему нет ?

Попробую высказать следующее утверждение

В последнее десятилетие рост мощности компьютеров (ограничусь только объемом RAM и скоростью процессора) был столь большим, что в результате мир IT оказался в редчайшей ситуации — возможности имеющейся техники для многих задач существенно превышают то, что необходимо для этих задач.

Попробую аргументировать.

Пусть, к примеру, создается сайт для небольшой торговой компании. Общее количество наименований продукции не более 1000. Положив по 100 Кбайт на каждый вид продукции, имеем 100 Мбайт информации, которой фирма оперирует. Из этого объема процентов 70-80 — просто файлы с документацией, доступные для скачивания, а остальное — база данных, HTML страницы и т.д. Никаких Java апплетов там не предвидится.

Кстати, 100 Мбайт — не так уж мало. 500-страничная книга — это примерно 1 Мб. Так что 100 Мб — это шкаф на сотню таких книг, что реально и имела бы фирма, если бы не было компьютеров вообще.

Обращений к этому сайту ожидается не так уж много. Сотни сеансов в день, вряд ли более.

И вот вам поручили сайт для этой фирмы сделать. Естественно, вы не запросите супер-сервер, сойдет любая современная машина в серверном (а то и не в серверном исполнении. Pentium IV, 3 GHz, 512 Mb. О сети я сегодня не говорю вообще.

А теперь зададим следующий вопрос. На каком минимально оборудовании можно было бы такой сайт создать ? Полностью игнорируем имеющееся ПО, все средства разработки и т.д. Какая машина это может потянуть ? Вот IBM PC XT — не потянет, как там ни оптимизируй, это ясно. А какая (минимально) потянет ?

Мой ответ — Pentium-100 32 Mb. Ну в крайнем случае раза в 2 лучше

Доказательство — 10 лет назад такие сайты были, если не у нас, то в США, и работали они на такой технике. И оперировали они тем же объемом информации, просто потому, что никакой принципиально новой информации у фирмы, торгующей ,к примеру, компьютерами, просто не появилось. Изменился ассортимент, вот и все.

А кстати, какой клиент это все потянет ? Netscape 3.0 на 16 Мб под Windows 95 потянет ? Тянул же он раньше...

Другой пример. Зашел я полгода назад в налоговую инспекцию. Бросил взгляд на экран компьютера, и сразу стало ясно, на чем их ПО написано — FoxPro для DOS ни с чем ни спутаешь, внешний вид уж больно характерный. Создано это ПО лет 10 назад, и до сих пор благополучно работает. Не знаю, какте там у них клиентские машины и сервер, но вряд ли что-то фантастическое. Да и зачем — в инспекции работает не более 100 человек, а каждый сотрудник 95% процентов времени работает с клиентами и бумагами, а не с компьютером. Сомневаюсь, что одновременно к этому серверу у них бывает больше 5 обращений когда бы то ни было.

Кстати, и в отделении Сбербанка у нас в Омске еще года 2 назад FoxPro DOS была. Сейчас, правда, уже нет.

Вот, кстати, немного арифметики

1983 Хороший компьютер — XT, 640 Кбайт, 4.7 MHz
1990. Компьютер 386 DX, 40MHz с 4 Мб — хороший компьютер.
2005 Приличный компьютер — Pentium IV, не менее 2 GHz, не менее 512 Mb

За первые 7 лет — рост менее чем в 10 раз
За вторые 15 лет — в 50-100 раз.

А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.

Разумеется, я далек от мысли утверждать, что это для всех задач верно. Если, к примеру, игры взять — все мои построения немедленно рушатся. И можно еще много таких направлений назвать, которым и нынешних мощностей мало, и в 10 раз увеличь — все равно, скажут, что мало, и будут правы. И не для всех сайтов это, конечно, верно.

Но вот то, что для большого количества задач мощности нынешних компьютеов значительно превышают те, которые минимально необходимы для этой задачи (при суперэффективном написании кода) — на мой взгляд верно.

А если так, то и появилась возможность пренебречь эффективностью. Действительно, когда ресурсов у нас в 10-20 раз больше, чем требуется — зачем относиться к ним с экономией ? Если мы имеем в 10 раз больше ресурсов, чем требуется — можно позволить и 2-3 кратную потерю эффективности в той же .Net — все равно работать будет с хорошей скоростью и заказчика устроит. Тут мои оппоненты правы. В результате и появился тот самый подход, пренебрегающий эффективностью в пользу других приоритетов, о которых тут много писали.

Кстати, эта точка зрения хорошо объясняет тот факт, что ASP.NET пользуется приличной популярностью, а настольных .NET приложений очень мало. Сайт на ASP.NET работает обычно на отдельной машине, кроме него самого и средств управления там больше ничего и нет, вольготно и раздольно. Настольные же приложения работают там, где кроме них есть еще 10-20 конкурентов, поэтому то замедление, которое они бы привнесли, многим не понравится.

Позволю себе вольную аналогию. Сервер на ASP.NET — это новый русский, отгрохавший себе особняк на 20 комнат и не знающий, что теперь с ними делать. Раздолье полное, можно любые причуды реализовать. А настольное приложение проживает в обычной трехкомнатной квартире многоквартирного дома, и когда оно пытается у соседа кухню отхватить — домовладельцу это не очень нравится

Если мои соображения верны, то ИМХО возможны следующие варианты развития

1. Рост мощностей продолжится прежними темпами. В этом случае и для многих других задач станет возможным пренебречь эффективностью. Возможно, это коснется и настольных приложений. Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост".
2. Рост мощностей замедлится. В этом случае для тех задач, для которых и ныненшняя мощность избыточна, все останется как сейчас. Но понемногу будут подтягиваться задачи, которые пока что или вообще не решаются (может быть, даже само их существование пока не осознано, так что их и не ставят), или же решаются с трудом, так как имеющиеся способы их решения вынуждены были ориентироваться на имеющиеся мощности (игры — классический пример). Доля этих задач будет возрастать, что приведет к возврату требований по эффективности написания кода.
With best regards
Pavel Dvorkin
Re: Об эффективности - с другой стороны
От: icWasya  
Дата: 17.11.05 07:57
Оценка: 26 (5) +8
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Решил еще раз вернуться к этому вопросу и посмотреть на него с несколько иной точки зрения.


Непомню кто сказал:
Увеличение произвадительности компьютера почти никак не скажется на простых задачах .
НО!
Тысячи сложных задач станут простыми ,
Станут сложными сотни очень сложных ,
И станут возможными несколько невозможных
Re[9]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 25.11.05 08:48
Оценка: 152 (10)
Здравствуйте, Дарней, Вы писали:

Д>что сложнее — выдолбить из мрамора статую высотой в два метра, или построить небоскреб высотой в энное количество сотен метров?


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

Существенная разница в том, что для изготовления статуи необходимо иметь уникальное сочетание различных знаний и умений в одном человеке, в скульпторе. В "Законах Паркинсона" это сочетание качеств называется мастерством.

При постройке небоскреба (или создании сложного объемного программного продукта) ситуация меняется. На первое место, имхо, выходит не умение делать что-то, а уменее организовать изготовление чего-либо чужими руками, умение управлять и организовывать. В тех же "Законах Паркинсона" это называется искусностью. Главный архитектор (или начальник строительства) не обязан быть хорошим архитектором, уметь расчитывать ветровую нагрузку на здание, точно знать структуру грунта и тонкости закладки фундамента. Он может иметь весьма поверхностные знания в каждой из этих областей. Но он должен прекрасно представлять себе картину происходящего в целом и должен уметь поставить на ключевые места строительство настоящих мастеров, которые прекрасно справляются со своим узким фронтом работы.

Ключевой момент в том, что даже у самого искусного руководителя возникает потребность в самых мастеровитых исполнителях. Например, когда-то я видел фрагменты документальных съемок монтирования верхушки какой-то телебашни (кажется в Канаде). Дело происходило на такой высоте, что очередную часть конструкции приходилось доставлять туда на вертолете, а принимали и укрепляли ее два строителя, пристегнутые к башне альпинистским снаряжением. Думаю, что исполнить такую работу могли только профессионалы высочайшего класса (как строители, так и пилот вертолета). Хотя для всего строительства это был всего лишь частный эпизод, один из многих моментов.

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

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

Так вот хочу заявить, что лично мне гораздо интереснее решать мелкие, но сложные задачи. Где требуется проявление личного мастерства. А вот большие и сложные, для которых нужна искусность, меня совершенно не привлекают. По разным причинам. Но, главное, ну не нравится мне делать большие разработки. Ну хоть убей! А вот маленькие, но трудоемкие и уникальные -- за милую душу, за гроши,... Да за харчи, в конце-концов! Потому, что интересно до безобразия.

Как-то так получается, что чем больше программируешь, чем больше опыта приобретаешь, тем больше приходится заниматься именно управлением, распределением работ и пр. Т.е., менять мастерство на искусность... А не хочется.

PS
Я никому не возражал. Это скорее из разряда "крик души"
Просто последние два дня курю над очередной темой, слишком большой объем в ней намечается, а сложности/уникальности особой не видно. Вот поорать и захотелось.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Об эффективности - с другой стороны
От: mrozov  
Дата: 17.11.05 10:33
Оценка: 103 (6) +3 :)
Павел, можно Вас попросить?
Не пишите про .net. Вы умный человек и очень знающий профессионал, но Ваши знания в этой области настолько малы, что на фоне предрассудков просто теряются.

Большинство пользователей не имеют притензий к скорости настольных приложений, написанных на VB. (.net работает быстрее.)
Зато притензий к скорости программ, написанным на С++ — масса. Возьмите Word или Windows, например. Следуя Вашей логике можно решить, что с++ — самый тормознутый язык из всех когда-либо используемых.

Ну не надо про это, прошу Вас. Смешно и грустно. Толку удручающе мало. Выбирайте другие примеры.

А вообще — не согласен я с Вами категорически. Рост требований к железу связан с увеличением алгоритмической сложности в единицу времени на единицу программиста. Отсюда и новые среды/языки. Мифическое "торможение" .net полностью теряется на фоне общего кол-ва операций, которые современным программам необходимо выполнять. На современном компьютере для .net места более чем достаточно. Значит и в будущем ничего в этом плане не изменится.

Более того, рост мощностей компьютеров будущего будет, видимо, связан в основном с многоядерными процессорами. Следовательно — быстрыми будут не оптимизированные вообще алгоритмы, а оптимизированные под многопоточное исполнение. И как следствие, программирование будущего — оно многопоточное. И хотя я не знаю, на каком языке мы будем писать эти программы, но то, что это не будет ни с++ ни asm — практически не сомневаюсь.
Re: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 17.11.05 11:39
Оценка: 56 (6) +4
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Мой ответ — Pentium-100 32 Mb. Ну в крайнем случае раза в 2 лучше

Мало иметь 100Мб информации, нужно еще ею эффективно управлять. Это уже СУБД. А теперь представим какой объем должен кэшироваться в памяти чтобы диск не стал узким и жестко ограничивающим средством. Мы можем задумываться больше о той полезной функциональности которую мы можем реализовать. Лет 10 назад, это стоило бы значительно дороже.

PD>Доказательство — 10 лет назад такие сайты были, если не у нас, то в США, и работали они на такой технике. И оперировали они тем же объемом информации, просто потому, что никакой принципиально новой информации у фирмы, торгующей ,к примеру, компьютерами, просто не появилось. Изменился ассортимент, вот и все.

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

PD>А кстати, какой клиент это все потянет ? Netscape 3.0 на 16 Мб под Windows 95 потянет ? Тянул же он раньше...

Было уже такое. Вся нагрузка на сервер, рабочая станция — один монитор, да связь с сервером. Но количество задач решаемый сейчас пользователем значительно больше.
PD>Другой пример. Зашел я полгода назад в налоговую инспекцию. Бросил взгляд на экран компьютера, и сразу стало ясно, на чем их ПО написано — FoxPro для DOS ни с чем ни спутаешь, внешний вид уж больно характерный. Создано это ПО лет 10 назад, и до сих пор благополучно работает. Не знаю, какте там у них клиентские машины и сервер, но вряд ли что-то фантастическое. Да и зачем — в инспекции работает не более 100 человек, а каждый сотрудник 95% процентов времени работает с клиентами и бумагами, а не с компьютером. Сомневаюсь, что одновременно к этому серверу у них бывает больше 5 обращений когда бы то ни было.
PD>Кстати, и в отделении Сбербанка у нас в Омске еще года 2 назад FoxPro DOS была. Сейчас, правда, уже нет.
Это компьютер адаптированный для выполнения конкретно-поставленной задачи. Это вполне нормально и никакого противоречия я не вижу. Он не такой же как обычный, он другой. Для него требования другие.

PD>А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.

Усложнились не задачи которые решаются торговой фирмой. Усложнились задачи выполняемые с помощью компьютера. И именно благодаря развитию железа и софта.

PD>Кстати, эта точка зрения хорошо объясняет тот факт, что ASP.NET пользуется приличной популярностью, а настольных .NET приложений очень мало. Сайт на ASP.NET работает обычно на отдельной машине, кроме него самого и средств управления там больше ничего и нет, вольготно и раздольно. Настольные же приложения работают там, где кроме них есть еще 10-20 конкурентов, поэтому то замедление, которое они бы привнесли, многим не понравится.

Ну нету у Net приложений провала в производительности. Есть отставание в 30-40 процентов. Когда я начинал, шли разговоры о борьбе между С и ассемблере. Там тоже была разница в 30-40 процентов. Сейчас об этом никто не задумывается. Если приложение специализированное, то цифра бесусловно может меняться.

PD>Позволю себе вольную аналогию. Сервер на ASP.NET — это новый русский, отгрохавший себе особняк на 20 комнат и не знающий, что теперь с ними делать. Раздолье полное, можно любые причуды реализовать. А настольное приложение проживает в обычной трехкомнатной квартире многоквартирного дома, и когда оно пытается у соседа кухню отхватить — домовладельцу это не очень нравится

Некорректно сравнивать два совершенно разных приложения предназначенных совершенно для разных целей.

PD>Если мои соображения верны, то ИМХО возможны следующие варианты развития


PD>1. Рост мощностей продолжится прежними темпами. В этом случае и для многих других задач станет возможным пренебречь эффективностью. Возможно, это коснется и настольных приложений. Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост".

Нет, не на вырост. Уже сейчас на среднем компьютере Net приложения нормально выполняются без потери эффективности. Мало того, он еще и выполняется в КПК — там где разгуляться с ресурсами нельзя.
PD>2. Рост мощностей замедлится. В этом случае для тех задач, для которых и ныненшняя мощность избыточна, все останется как сейчас. Но понемногу будут подтягиваться задачи, которые пока что или вообще не решаются (может быть, даже само их существование пока не осознано, так что их и не ставят), или же решаются с трудом, так как имеющиеся способы их решения вынуждены были ориентироваться на имеющиеся мощности (игры — классический пример). Доля этих задач будет возрастать, что приведет к возврату требований по эффективности написания кода.
Это сказка. Пути назад уже нет.

Вообще ты все время упускаешь следующую вещь. То что сейчас делает один программист, раньше стоило несколько миллионов зеленых. Мы вкатились в систему компонентов и библиотек. Я уже не должен отслеживать обратный ход луча на мониторе. Мы теперь используем более функциональные компоненты как кирпичи. И основное торможение в программах дают именно эти компоненты. Они многое могут, они сильно нам помогают, но именно они и являются тормозом производительности. Но развитие железа опережает развитие компонентов. Поэтому мы можем меньше думать о них, и больше думать о том, что мы хотим сделать. Кто может сказать что лет 15 назад он в одиночку написал бы сервер приложений?
Вообще, основное торможение и раньше давал не код, а используемые компоненты и железо. Даже на 286 было трудно написать тормозной код, но легко было стормозить программу работой диска и выводом на экран.
И еще, голову никто не отменял. Если у тебя несколько потоков деруться за один ресурс, то как бы ты не старался написать быстрый код, скорость не увеличится. Вот именно на разрешение подобных проблем, времени остается значительно больше.
Вобщем, перевод требований по эффективности кода это процесс не искуственный, это процесс эволюционный.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Об эффективности - с другой стороны
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 17.11.05 07:56
Оценка: 4 (1) :))) :))) :)))
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А сложность задач в 50 раз отнюдь не увеличилась.


Вырезка из форума на Королевстве Дельфи:

№ 3198 01-11-2005 10:29 Андрей Хохлов

Есть некая Native ОС Oberon для IBM PC (http://www.oberon.ethz.ch/native/). Кто-нибудь ее ставил? (Главное опасение — не испортить установленные ОС)


№ 3214 02-11-2005 01:11 Trurl

У этой ОС есть недостаток — она не позволяет загрузить по полной современный процессор.


№ 3217 02-11-2005 01:58 Читатель

Если можно, поясните что значит "не позволяет загрузить современный процессор" и заодно, почему это недостаток.


№ 3243 03-11-2005 03:10 Trurl

Например, работая на P2-200MHz и на P4-2GHz, не замечаешь особой разницы.
Почему недостаток? Ну как же, а за что деньги плочены?

Re: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 17.11.05 15:51
Оценка: 27 (4) +3 -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Попробую высказать следующее утверждение


PD>В последнее десятилетие рост мощности компьютеров (ограничусь только объемом RAM и скоростью процессора) был столь большим, что в результате мир IT оказался в редчайшей ситуации — возможности имеющейся техники для многих задач существенно превышают то, что необходимо для этих задач.


На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая. Что это означает? А то, что тяжело мне в жизни приходится ибо интересных мне задач очень мало. Но они есть (видишь суслика?) и я стараюсь всеми силами "грести их под себя" — такова моя жизненная философия. Я стремлюсь быть уникальным, штучным экземпляром, мне не интересно находиться на уровне рутинщика.

Вот пример. Некий поиск в коллекции (многокритериальный) через прямую имплементацию работает в 10 раз быстрее, чем если задействовать reflection (прямая имплементация — кучерява, через reflection — компактна и изящна). Но этот поиск требуется там, где совершенно несущественно, работает ли он 1 миллисекунду или 10 миллисекунд, поэтому ускорение в 10 раз совершенно не повод что-то там оптимизировать. Мотивом к оптимизации была бы ситуация, если бы решение с reflection работало бы еще в 1000 раз медленнее. То есть, счет в данном случае идет на сотни и тысячи раз, чтобы имело смысл дергаться — таков usecase. То есть, это типичная задача класса O(1) по использованию. Формально алгоритмически она — O(N), но по жизни нет ни малейшей видимой зависимости времени работы от количества данных — значит O(1). Это пример задачи, которая мне ну вообще не интересна — чисто механическая работа, примерно как свинчивать магазинную мебель. Да, мебель при этом — советская, дырки кое-где не просверлены, а те что есть — просверлены на пару миллиметров мимо, в общем, "творчество" заключается в том, чтобы при помощи молотка и такой-то матери все это таки свинтить, а потом еще и попытаться со всей этой х... взлететь. Эффективней нанять "винтильщика", который за умеренную плату выполнит эту работу (аутсорс), тем более, что у него рука набита. Но вот парадокс — грамотных винтильщиков тоже очень мало, в большинстве случаев все надо проверять, докручивать и поддтягивать за ними, иначе рано или поздно что-нибудь да отвалится (полностью не развалится, нет — чисто какая-нибудь мелочь — ручка там разболтается, дно в яшике провалится, ну дело-то житейское). А все почему? А потому, что винтильщику пофиг что там будет с этим комодом через год — у него нет мотивации. Но это уже вне темы.

Пример другой задачи — придумать способ, как генерировать 2 миллиона треугольников в секунду, вместо одного (ну, скажем, из сцены Flash). Разница — всего-навсего вдвое. Но во-первых, эта разница является мега-критичной в силу usecase, во-вторых, это тот тит задач, к которым у меня имеется хроническая наркотическая зависимость. Здесь уже не может быть и речи о том, что "заменил контейнер — ускорил вдвое". Если используется неэффективный контейнер или неэффективная сортировака, то это — халтура по определению, ибо это — самая простая часть задачи по оптимизации. Но еще раз повторю — подобных задач крайне мало и именно поэтому я заинтересован работать над ними с полной выкладкой, поскольку качество становится вопросом моей профессиональной состоятельности.

Таким оброазом, необходимость эффективных решений определяется целиком и полностью их use case. И если задачи, над которыми человек работает, относятся к категории рутинных O(1), значит таков его личный выбор в конечном итоге. Вот и всех делов.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[7]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 18.11.05 14:12
Оценка: 24 (3) +4 :)
Здравствуйте, Дарней, Вы писали:

Д>ну если для тебя написание ОС — посредственная задача, то мне остается только удивляться, почему ты еще не нанял Билли Г работать уборшиком


По моему глубокому убеждению, вопрос материальной состоятельности других людей не должен Вас беспокоить. Вообще не должен. А "написание ОС" — это задача гигантского объема, а не сложности. Да, там есть нетривиальные части, но их объем в процентном отношении к тривиальному коду — исчезающе мал.

Еще раз озвучу свою позицию. Нам отведено не так уж и много времени на этой Земле и лично мне жалко тратить его на кодирование тривиальной логики. Мне хочется еще и удовольствия.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 02:22
Оценка: 198 (7)
Здравствуйте, Дарней, Вы писали:

Д>какие же они "свои", если они покупаются в ближайшей лавке, только чуть более дорогой?


Ты знаешь, Дарней, фишка все-таки не в этом. Я учился играть на гитаре и стал фанатом Александра Розенбаума за его уникальную манеру в "Нарисуйте мне дом", "Белым полем дым" и т.д. Ну, говна-пирога — песни как песни. Но я хотел получить такой же звук! И я его получил. Но для этого надо было иметь 12 струн. И я их поимел, причем с шестью колками (догадайся, как)! Но при этом оказалось, что советское социалистическое производство не производит нужных струн. Поэтому пришлось наматывать струны самому и изготовить для этого специальный станок (на этом, я кстати заработал некие деньги, почти на целую квартиру). Потом я мотал струны для рокеров-панкеров, а потом это все стало неактуально... Да, мое кустарное производство сломалось под напором "перестройки", когда любые струны любых брендов стало можно купить.

Но ты даже не представляшь, какой это кайф, когда один панкер говорит другому панкеру, что "вот есть чувак, который может намотать правильные струны". Это гораздо сильнее любого наркотика. Надо лишь раз почувствовать себя уникальным.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 18.11.05 14:03
Оценка: 40 (6) +1
Здравствуйте, Дарней, Вы писали:

MS>>На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая.


Д>Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?


Можно процитировать мои слова, демонстрирующие снобизм? Речь была лишь о личных предпочтениях. У меня (лично у меня) — вот такие-то и такие-то предпочтения, и я специально сделал на этом акцент.

Д>Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!


Я бы попросил читать то что написано, а не то, что хочется прочесть. Внимательнее, пожалуйста. Вывод треугольников — это действительно примитивная задача, а "вывод вдвое быстрее" — примерно такая же рутина, как и ковыряние в кривом API (собственно, это задача и относится к категории API). Натривиальным является некий способ генерации этих самых треугольников (это лишь для примера). Это очень тонкий момент, часто вызывающий непонимание. В представлении большинства людей "оптимизация" — это ковыряние на уровне машинных кодов и/или написание длинного и неряшливого спагети-кода. Это тоже на редкость тоскливое занятие. Повторю еще раз — интересной (для меня!) является прежде всего работа над алгоритмической частью, когда, например, требуется приблизить O(N log N) к O(N). Вам знакомо понятие О-нотации? Это чем-то напоминает процесс доказательства математических теорем. И язык как таковой здесь не имеет большого значения.

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


Интересно, какую такую "операционную систему" или "язык программирования" можно придумать, да еще и так, как "никто раньше не делал", и самое главное — не для самоудовлетворения, а чтобы ими пользовались хотя бы пара тысяч людей? По-моему, это что-то из области заведомой утопии. А я реалист и "наполеонством" не страдаю.

Д>Вероятно, выбор одного из этих вариантов зависит от особенностей менталитета каждого программиста. Одним нравится копать вглубь, другим — строить ввысь.


В моем понимании — копать вглубь — это считать такты и оптимизировать на уровне отдельных команд. Есть и такие задачи, в области firmware, но они меня тоже не прельщают.
Строить ввысь — это как раз и есть возводить здание из надежых и эффективных конструкций, устроенное примерно как цепочка неопровержимых математических доказательств. Это то, к чему я и стремлюсь (но основная доля моей работы — это пока что рутина, тем не менее).
Есть подозрение, что то, что Вы, уважаемый Дарней понимаете под "сложными задачами" — это на самом деле строительство вширь, когда конструкции могут стоять только на земле, а при попытке что-то соорудить из них ввысь, получается нелепое и неустойчивое нагромождение.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[3]: Об эффективности - с другой стороны
От: mrozov  
Дата: 17.11.05 11:23
Оценка: +7
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А вообще мои замечания — не о .Net вовсе, а о соответствии ресурсов задачам.


Да ну?

"Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост"."
Не про .net? Явно!?

"Сервер на ASP.NET — это новый русский, отгрохавший себе особняк на 20 комнат и не знающий, что теперь с ними делать" Не про .net? Asp.Net у нас теперь стал дико неэффективным web-сервером? С каких пор???

"можно позволить и 2-3 кратную потерю эффективности в той же .Net " Это тоже не про .net? Какую-какую потерю эффективности? Доказательства голословных обвинений в студию!

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

Никаких предрассудков и искренее желание понять. Ну да. Видное невооруженным взгядом.
Re[6]: Об эффективности - с другой стороны
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.11.05 16:00
Оценка: +7
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Стоп-стоп. Где ее взять — вестимо, на свалке, может быть . И я восе не призываю ее там искать. Мой вопрос не в этом. Вопрос — как соотносятся задачи и ресурсы. Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов


Я тебе как то давал ссылку на топик, в котором я описывал ситуацию с увеличением ресурсов. Вкратце — ситуация не так проста, как ты ее пытаешься описать. Даже если отбросить стоимость разработки самыми эффективными решениями для P-200 и P4-4000 скорее всего будут решения разные, потому что ресурсов у компьютера много и растут они с разной скоростью. Кроме того ускорение приложения процедура нелинейная. Практически всегда в море алгоритмов реального приложения есть бутылочное горлышко. Если мы его устраним путем роста того ресурса, в который упираемся, то это самое горлышко образуется в другом месте и совсем не факт что проблемным будет тот же самый ресурс.
Говоря по простому — решения для очень тяжелых нагрузок для больших машин будучи примененными на машинах маленьких скорее всего окажутся не самыми эффективными. С десктопами это не так заметно, но тем не менее тенденция существует.
Теперь о .NET, коль скоро ты о ней помянул. Он действительно вносит оверхед, но далеко не во всех направлениях. Точнее он заметно избыточен по памяти и слегка по процессору. Все. Теперь взгляни на современные задачи на современных десктопах. В какой ресурс они упираются? Вот тот софт что часто использую я и который работает не мгновенно (VS, Янус, TortoiseSVN), вот он весь, без исключения, упирается в жесткий диск. Таким образом полное устранение нетовского оверхеда ничего не изменит. Что еще — игрушки тоже последнее время от процессора зависят несильно, там все в видеокарту упирается. Значит и здесь принципиальных проблем в использовании .NET нет.
... << RSDN@Home 1.2.0 alpha rev. 619>>
AVK Blog
Re: Об эффективности - с другой стороны
От: ZevS Россия  
Дата: 17.11.05 13:23
Оценка: 30 (2) +4
Здравствуйте, Pavel Dvorkin, Вы писали:

Пока лишние гигабайты и мегагерцы будут дешевле, чем работее время программиста — до тех пор на эффективность будет всем начхать.

Вот если надо написать программку для сотрудников очень большой организации в которой уже есть >500 стареньких компов, то дешевле будет написать программку маленькой и быстрой, но долго, чем заменить весь парк.
Re[3]: попробую еще раз объяснить
От: Шахтер Интернет  
Дата: 18.11.05 11:18
Оценка: 1 (1) +3 :))
Здравствуйте, Alexey Axyonov, Вы писали:

AA>И игры продолжают требовать все более мощного и узко-специализированного железа (например того же физического сопроцессора). Оправдано ли это? Думаю да, хотя есть и исключения (к примеру: Civilization IV, как можно было сделать из походовой игры такого тормоза я не знаю).


Кстати, хороший пример.
Гейм-дизайн -- 5+, программирование -- 1-.
Самое обидное, что дичайшие тормоза убивают играбельность.
Причем, судя по всемуу, графический движок там сделан нормально (надо полагать на С/С++),
а тормозит именно скриптовая часть, сделанная с помощью питона и XML я.
Наглядный пример, до чего доводят современные модные технологии.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[2]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 06:03
Оценка: +3 -3
Здравствуйте, McSeem2, Вы писали:

MS>На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая.


Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!
Другим людям нравится решать сложные задачи, но простыми способамами — например, писать свои операционные системы, языки программирования и так далее. Пусть они даже работают не так быстро, как возможно — зато делают такие вещи, которые до них никто раньше не делал.
Вероятно, выбор одного из этих вариантов зависит от особенностей менталитета каждого программиста. Одним нравится копать вглубь, другим — строить ввысь.
Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Об эффективности - с другой стороны
От: _Winnie Россия C++.freerun
Дата: 18.11.05 08:36
Оценка: +3 :)))
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, McSeem2, Вы писали:


MS>>На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая.


Д>Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!

Д>Другим людям нравится решать сложные задачи, но простыми способамами — например, писать свои операционные системы, языки программирования и так далее. Пусть они даже работают не так быстро, как возможно — зато делают такие вещи, которые до них никто раньше не делал.
Д>Вероятно, выбор одного из этих вариантов зависит от особенностей менталитета каждого программиста. Одним нравится копать вглубь, другим — строить ввысь.
Д>Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?


Был однажды программист, который работал с микропроцессорами.
— Смотри, как хорошо мне здесь! — сказал он программисту мейнфреймов, который зашел к нему. — У меня есть собственная операционная система и устройство для хранения файлов. Я ни с кем не делю свои ресурсы. Программное обеспечение самодостаточно и легко в обращении. Почему бы тебе не уйти с твоей теперешней работы и не присоединиться ко мне здесь?
Тогда программист мейнфреймов начал описывать другу свою систему, говоря:
— Мейнфрейм восседает в вычислительном центре, как древний мудрец погруженный в медитацию. Его дисковые накопители раскинулись из конца в конец, как огромный электронный океан. Программное обеспечение многогранно, как брильянт и переплетено, как первобытные джунгли. Программы, каждая уникальна, движутся сквозь систему, как быстротекущая река. Вот почему я счастлив там, где я есть.
Программист микрокомпьютеров, услышав это, надолго замолчал. Hо два программиста остались друзьями до конца своих дней.

Правильно работающая программа — просто частный случай Undefined Behavior
Re[3]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 18.11.05 12:24
Оценка: 24 (2) +2 -1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, McSeem2, Вы писали:


MS>>На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая.


Д>Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!

Д>Другим людям нравится решать сложные задачи, но простыми способамами — например, писать свои операционные системы, языки программирования и так далее. Пусть они даже работают не так быстро, как возможно — зато делают такие вещи, которые до них никто раньше не делал.
Д>Вероятно, выбор одного из этих вариантов зависит от особенностей менталитета каждого программиста. Одним нравится копать вглубь, другим — строить ввысь.

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

Д>Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?


А я вот наоборот не понимаю, когда подмастерья начинают наезжать на мастеров -- типа и кисти с красками у него свои, а не дешёвый ширпотреб из ближайшей китайской лавки, и пишет он расчитываяя каждый мазок, то ли дело мы -- наляпаем абы как, всё равно заказчит в живописи ничего не смыслит, "пипл хавает".
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 17.11.05 22:42
Оценка: 15 (1) +4
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Другой пример. Зашел я полгода назад в налоговую инспекцию. Бросил взгляд на экран компьютера, и сразу стало ясно, на чем их ПО написано — FoxPro для DOS ни с чем ни спутаешь, внешний вид уж больно характерный. Создано это ПО лет 10 назад, и до сих пор благополучно работает. Не знаю, какте там у них клиентские машины и сервер, но вряд ли что-то фантастическое. Да и зачем — в инспекции работает не более 100 человек, а каждый сотрудник 95% процентов времени работает с клиентами и бумагами, а не с компьютером. Сомневаюсь, что одновременно к этому серверу у них бывает больше 5 обращений когда бы то ни было.


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

Но давай по делу.
В принципе, ZevS уже высказал основную мысль. Могу её лишь дополнить.

Когда мне дали порулить на моём первом писюке, то его стоимость равнялась примерно моим 25-ти! годовым! зарплатам. И что бы на него насобирать деньги мне пришлось бы работать примерно 80 лет. Сейчас, такой же по современным уровням компьютер, практический каждый программист в России может купить на месячную зарплату.На месячную зарплату тех кто получает по-больше можно укомплектовать офисной техникой небольшой отдел.

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

PD>А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.


Зато соотношение стоимость разработки софта к стоимости компьютеров выросла просто неимоверно.
Если нам не помогут, то мы тоже никого не пощадим.
Re: маленькое замечание
От: Pavel Dvorkin Россия  
Дата: 21.11.05 06:52
Оценка: 1 (1) +4
Господа, а не кажется ли вам, что вся эта дискуссия просто-напросто демонстрирует одно простой факт ?

Единого мира программирования попросту не существует. Эта область человеческой деятельности давно уже разбилась на ряд вполне отдельных областей, в которых действуют свои законы, и в разных областях эти законы бывают порой попросту противоположными. И то. что верно для приложений 3D графики — совсем не годится для разработки корпоративных сайтов...
Отсюда и непонимание друг друга. Все равно как если бы архитектор, создающий современные жилые дома, начал дискутировать с архитектором, чья специальность — церкви или соборы. Один про важность состыковки крупнопанельных блоков и промышленное их производство, другой ему в ответ — о том, как правильно купола делать из кирпичей.
Хотя и тот и другой — архитекторы.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.11.05 08:43
Оценка: :))) :))
Здравствуйте, Дарней, Вы писали:
Д>интересно, а что за трюк?
Да там одна ошибка при обработке прерываний в пентиуме, благодаря которой можно сэкономить пару тактов.

Шутка.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[4]: Об эффективности - с другой стороны
От: mrozov  
Дата: 18.11.05 12:30
Оценка: +2 -3
"Не понимаю" это очень правильно сказано. Именно — не понимаешь.

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

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

Подумай над этим.
Re[13]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 08:02
Оценка: :))) :))
Здравствуйте, Дарней, Вы писали:

Д>проблема в том, что многие из тех самых "программистов узких мест" имеют обыкновение считать всех окружающих идиотами


Есть еще и обратная проблема: многие из тех, кто в принципе не смог бы заниматься узкими местами, смотрит на специализированных специалистов свысока и снисходительно. Типа, мы-то всегда на волне, а вы в своих микрооптимизациях рельного мира-то и не видите.

Это все экстримизм, на который лучше не обращать внимания.

Хотя, иногда, после рюмки-другой 10-летней выдержки чайку "Белый Аист", хочется проронить скупую мужскую слезу, порвать рубаху со словами: "Да я!... Да сложный объект...! Да за две миллисекунды...! Да в режиме транзакционности!...".

... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Об эффективности - с другой стороны
От: mrozov  
Дата: 18.11.05 10:47
Оценка: 30 (3) +1
Павел, тут такая штука. Ты хочешь понять, но внутренне протестуешь. Ты ищешь поводы не принять эту идею, а причина — в черезмерном увлечении производительностью скорости. Ты на этом немного зациклился.

Может, тебе такой ответ понравится/будет близок. .Net — это, как и Java, вещь безусловно не эфимерная. Они останутся. Но они были изначально созданы под влиянием понимания того, что не для всех задач нужна оптимизация скорости работы программы, зато оптимизация скорости работы программиста нужна всегда.

Мы живем во времена, когда задача оптимизации кода встает редко. Отюда и притензия на доменирование. Но это не абсолютная истина, поэтому и абсолютного доминирования не будет.

Если ты так уж увлечен низкоуровневым программированием — просто ищи для себя соответствующие задачи и все. Их немного, но людей, способных их эффективно решать — еще меньше. И тогда — какое тебе вообще дело до .net? Равно как и до js, например. Ну какое тебе дело до его скорости и особенностей функционирования, если ты не пишешь клиентский код для браузеров?

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

И вообще — если вопрос практический, если он касается выбора специализации на ближайшее время... Ну подумай сам, остановки роста производительности пока нет, остановки роста объема памяти — вообще пока не предвидится, многопроцессорные машины снимут остроту проблемы одновременного запуска тяжелых приложений... Никаких выдающихся тормозов управляемый код не привносит — ну несерьезны эти 10-15 процентов на реальных приложениях. MS свое любимое детище, опять же, будет поддерживать всей своей немеренной массой.

Если вопрос теоретический, так все косточки уже обсосаны — пока железо дешевле, чем наш труд — выбор очевиден. И наоборот.

Хватит тебе уже эту тему мусолить, давайте о чем-нибудь еще поговорим. О пришествии карманных компьютеров, например.
Re[2]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 18.11.05 00:46
Оценка: 19 (3) +1
Здравствуйте, Glоbus, Вы писали:

G><skipped>


<skipped>

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

Я бы сказал по другому:

По всей видимости есть/было намерение создать нечто "быстрорастворимое" —
систему кубиков для сборки in-house приложений которые максимально легко
настраиваемы под конекретный момент жизни предприятия. Получилось ли? Не знаю.

У ИС предприятия несколько другие критерии того что есть хорошо и что есть медленно.
В принципе всякого рода бухгалтериям все равно когда пить чай — во время или после расчета.
Им важно чтобы расчет произошел 30 числа каждого месяца.
На таких задачах всегда "рулил" VB по совершенно очевидным причинам.

Но когда мы пользуем компьютер дома у нас другие критерии.

Простой пример: есть игрушка №1 — быстрая графика но не сильно качественная и
есть игрушка N2 — графика умереть можно, но тормозит.
Играют как правило в первую. Второую же качают, смотрят и откладавыают.

На предприятии же другая система — программу покупеат руководство и тактильные
ощущения тети Маши а также её график чаепитий — до фонаря. Главное что
систему можно быстро менять после каждого заседания Думы.

Предполагется что возможность rapid design это то за что мы платим сборкой мусора.

Вообще я уже много раз говорил: каждая задача требует своего собственного оптимально инструмента.
Задачи бухгалтерии одного. Разработка Office и игр — другого.

На одной из конференций раздавали всякие презенты — оченно
показалось симптоматичным что Visual Studio.NET раздавала брелки в виде комбо ножиков-ножниц-пилки-и-отвертки.
(сделанных в Китае ) с надписью Visual Studio. Это вот оно — нечто под рукой для быстро открутить болтик.
Но для серьезной сборки профи другие "струменты" пользуют, правда?
К слову сказать оригинальное изделие (Swiss-Knife) оказалось удобнее и долговечнее. Но это так... издержки
массового производстсва. К тому же отдаю себе очтет что аналогия может быть спорная.
Re[7]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 20.11.05 18:36
Оценка: 19 (3) +1
Здравствуйте, Дарней, Вы писали:

Д>Похоже, никто так и не понял, что я хотел сказать.

Д>Мне тоже не нравятся рутинные задачи. Но выжиманием скорости ради развлечения я давно не занимался и не собираюсь. Потому что это та же самая рутина.

"Выжимание скорости" бывает разым. Вот простейшая иллюстрация — надо удалить все пробелы из Сишной строки.
Реализация раз, индуссого типа:
for(i = 0; i < strlen(str); i++)
{
   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
}


Знаешь, какова сложность данного цикла? O(N^3). Это значит, что на строке в 10 миллионов символов данный цикл не закончится никогда — врмени жизни Вселенной не хватит.

Реализация два, нормальная, O(N).
for(i = j = 0; str[i]; i++)
{
   if(str[i] != ' ') str[j++] = str[i];
}
str[j] = 0;

(возможно, что я где-то ошибся, но это не важно для иллюстрации).


Это так называемая алгоритмическая оптимизация, оперирующая понятием О-нотации. На маленьких строках первый вариант будет работать тоже вполне быстро, но он начнет затыкаться как только размер превысит некий критический. Возможно, что этот критический размер никогда не будет превышен, а возможно что и будет — и тогда кирдык всей идее. Но заранее мы как правило не знаем этого. Да, иногда знаем и можем позволить себе схалтурить (куда ж без этого?).

Есть еще кодовая оптимизация, например, для данного случая — использовать адресную арифметику вместо индексной. Она тоже дает выигрыш, но соотношение усилия/эффект у него гораздо ниже. И это действительно рутиная работа (куда ж без нее?). И вот стереотип заключается в том, что большинство людей под оптимизацией подразумевают именно кодовую оптимизацию. Но для первого варианта никакая кодовая оптимизация не поможет. Это только в морг.

Прошу заметить, что данный пример является лишь иллюстрацией. Понятно, что современными средствами это делается по-другому, типа remove_if или методами в классе строки. Но принцип от этого не изменяется. Есть бесчисленное множество других задач, которые не решаются стандартными методами. И вот алгоритмический анализ и сокращение сложности там, где это принципиально возможно — это очень сильное колдунство. Оно не может быть рутиной по определению, оно может лишь не являться необходимым. Но такие задачи, в которых алгоритмическая оптимизация является несущественной, не вызывают у меня ни малейшего интереса.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 18.11.05 12:41
Оценка: 1 (1) +2 -1
Здравствуйте, mrozov, Вы писали:

M>Подумай над этим.


Перечитай ещё раз мой сообщение и подумай над его смыслом.
У тебя похоже проблемы с пониманием собеседников, ты вместо того что написано, подставляешь что-то иное.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[13]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 03:37
Оценка: 1 (1) +3
MS>>Надо лишь раз почувствовать себя уникальным.

Д>с этим никаких проблем нет идей море, аж в голове тесно становится.

Д>Другой вопрос, что времени на их реализацию мало.

Это чисто отмазка. Если действительно есть некий зуд, то ты этот "гондурас" просто не можешь не расчесывать. А если типа "идей море", но просто "времени нет", это значит что и идей-то собственно никаких нет. Таково мое мировосприятие.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 16:13
Оценка: 1 (1) :)))
Здравствуйте, GlebZ, Вы писали:

GZ>ЗЫ Какой негодяй написал что while(*p++==*p1++); нормальный способ копирования строки(хотя знаю кто , но IMHO — это ошибка)? А самое главное сказал что это нормально.


Корни этого растут из арихитектуры PDP-11 с ее автоинкрементной адресацией. Там подобный цикл, точнее сказать "do while(*p++=*p1++);" транслировался ровно в две инструкции:
$1: MOVB (R0)+,(R1)+
    BNE $1


Система команд PDP-11 торжественно похоронена, а операторы инкремента и декремента до сих пор мигритуют — и в Java и в C#. А почему мигрируют? А чисто потому, что прикольная фишка. Людям скучно жить по строгим правилам. Язык программирования компьютеров должен допускать некое хулиганство. Иначе скучно жить на этом свете.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.05 01:59
Оценка: +4
Здравствуйте, Дарней, Вы писали:

E>>А почему Энштейн не был самым богатым человеком в мире (в свое время)?


Д>мы говорим не про абстрактные теории, из которых нельзя извлечь непосредственную пользу. Мы говорим о программировании, то есть — производстве некоторой продукции, которая стоит денег.


Ну это высказывание — уж вообще ни в борщь ни в красну армию. Известно ли тебе, что все сегодняшние технологические достижения опираются на те самые "абстрактные теории"? Без квантовой механики не было бы столь производительных процессоров, без СТО — ни один GPS бы не работал. Да, ни Альберт Энштейн, ни Ричард Фейнман, ни множество других ученых не были богатыми людьми, но лично я испытываю к ним гораздо большее уважение, чем к десятку билли-гейцов и их микрософтами. Такие дела. Но еще раз повторю во избежание недоразумений — это мое личное мировосприятие и я никому его не навязываю. Если кто-то горазд молиться на Microsoft (или на деньги, ассоциируемые с Microsoft), то у меня нет морального права как-то осуждать это желание — это не мое дело.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[12]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 16:15
Оценка: +2 :))
Здравствуйте, Дарней, Вы писали:

Д>то есть примерно то же самое, что я предлагал

Д>хотя дьявол, как всегда, в деталях

Чтобы понять, что "дьявол в деталях", надо попытаться имплементировать. А этого в W3C никто не любит. Они же "теоретики"! Едреныть. И судя по неким косвенным признакам, они тоже не понимают сущности О-нотации. Ибо, если бы понимали, не гнали бы такую лажу. С SVG — то же самое. А потом они удивляются, почему это убогий Flash завоевал полмира, а наш великий и могучий SVG до сих пор в глубокой... где-то между ягодицами.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[15]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 22.11.05 07:36
Оценка: :))) :)
Здравствуйте, Sinclair, Вы писали:

>Ну разве не здорово иметь возможность воткнуть в документ какой-нибудь <hr id="oops">, и всё что после него, станет, к примеру, синим?


Включая физиономию программиста ?
With best regards
Pavel Dvorkin
Re[9]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 23.11.05 08:55
Оценка: 17 (2) -1
Здравствуйте, mrozov, Вы писали:

M>Вот то-то и оно, что у тебя полностью спутаны эти понятия. Нет ничего "высококлассного" во владении низкоуровневыми технологиями. Это тут непричем.


Мы говорили об умельцах выжимать максимум. Так вот, овладение любой технологией/АПИ никогда не начинается снизу. Оно начинается сверху. Просто некоторым хватает любопытства/способностей понять как оно работает на самом деле. Т.е. высокоуровневый путь никто не минует, поверь. Разница лишь в том, что одни остаются барахтаться на уровне прикладных либ, а другим не составляет труда продвинуться чуть дальше. Я уверен, что тут дело в способностях. Оба они тратят примерно одинаковое время на свою деятельность, просто первые — чуть результативнее.

Так вот, наблюдаемая мною разница в том, что первые абсолютно не напрягаясь занимаются любыми задачами, и очень неплохо занимаются. А у вторых за каждым новым незнакомым поворотом — ступор. Первым можно дать задание и забыть, а вторых необходимо вести на поводу, и в случае возникновения осложнений — помогать. В общем, сильная узколобость хороша только в очень больших командах с сильной иерархией. А таких вообще в СНГ весьма мало.

M>Нет никакой связи между знанием ассемблера и "высококлассностью". Можно быть богом в программировании и оптимизации запросов к СУБД и больше ничего о программировании не знать. И наоборот.


Это сказки-небылицы и заблуждения. Если человек талантлив, то он талантлив сразу во многом и достаточно любопытен. Я видел несколько DB админов "как боги", ты будешь смеяться, но часть из них выросла из микропроцессорщиков. Нельзя достичь нирваны, не понимая устройства мира. Специалист должен отчетливо представлять, что именно он делает, что кроется за хинтами блокировок и почему они должны быть разными на разных объемах, и какова истинная цена нормализации/индексов на тех же объемах (это вообще отдельная тема, но для другого форума). Понимаешь, если человек этим всем владеет (а иначе он не бог в этой области), то такой человек абсолютно не напрягаясь ныряет вверх и вниз — ему пофиг, он профи и разбирается в том, с чем работает.

Блин, ну не может талантливый ДБ-админ или девелопер быть обезъянкой в клетке SQL-инструкций. SQL-инструкции — это не цель, а ср-во. Человек решает произвести некие действия с данными, и применяет этот инструмент. Данные — они "живые", особенно на больших объемах. Их надо чуствовать, понимать их характер. Без абсолютно ясного понимания сути происходящего это просто невозможно.


-------------
Если уж говорить о высокоуровневости, то я бы рассуждал скорее не об HTML-верстальщиках и SQL-парнях, а об проектировщиках, архитекторах. Домашнее задание — найти хотя бы одного грамотного проектировщика/архитектора, который бы плохо разбирался в том самом пресловутом нижнем уровне.
В общем, если ты попытаешься действительно предпринять исследования/наблюдения на эту тему, то будешь удивлен реальным положением вещей. И оно, все-таки, не спроста.
Re[8]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 19.11.05 12:09
Оценка: 7 (1) -1 :)
Здравствуйте, minorlogic, Вы писали:

M>А вот и не буду , уж очень это очевидно. А если не понял , ну и не стОит ...

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

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Что такое оптимизация на примере.
От: minorlogic Украина  
Дата: 21.11.05 09:50
Оценка: 7 (1) +2
Возникла мысль что некоторые учасники дискусии не вполне разделяют понимание что такое оптимизация.

Попробую привести пример из реальной жизни.
Кратко , есть в сжатии MP3 такой алгоритм , когда надо запихнуть сжатые данные в лимитированный объем(битрейт).

алгоритм
1. Бинарным делением мы находим величину квантизатора дающего ближайший по размеру результат.

2. находим самые искаженные частотные полосы , и для них конкретно уменьшаем величину квантизации.

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

(не будем заострять внимание что этот подход не эфективен в целом , можно лучше)


Так вот после замеров производительности , стало ясно что самым критичным является непосредственно нелинейная квантизация.

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

Что делать ? переписать на асемблере ? КОНЕЧНО ! Мне такое предлагали, даже настаивали . Но это ПОСЛЕДНЕЕ что я стал бы делать .

Первое правило оптимизатора какое ?
"Самый быстрый код — это тот который не выполняется"
И я подумал а можно ли сократить количество вызовов квантизатора ? И конечно , сразу понял что в большинстве случаев мы на каждой итерации квантизуем одни и теже данные с тем же самым шагом.

И тут добавление информации что на предыдущам шаге у нас была подобная квантизация и пересчитывать ее не надо дало прирост на порядок (этого шага)!!! И функция квантизации престала быть бутылочным горлышаком.

После этого было пару эвристик чтобы ускорить спуск бинарным поиском и т.д.

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

По жизни уже давным давно повторяю как мантру
"оптимизируйте алгоритмы а не код" нет неправильно , правильно так "ОПТИМИЗИРУЙТЕ АЛГОРИТМЫ А НЕ КОД !!!!!!"

Мне кажется что и Максим , когда говорит про "оптимизацию" совсем не имеет ввиду причесывание кода.


К сожалению в приведенном примере , для нахождения такого очевидного решения , пришлось ПОНЯТЬ что именно делает весь код в целом, а для этого надо знать и предметную область и многое другое.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[11]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 06:00
Оценка: 1 (1) +2
Здравствуйте, Дарней, Вы писали:

E>>Нет, главная особенность в том, что они не такие, как все остальные


Д>в таком случае, уважаемый, ты тоже занимаешься рутиной и клепанием гор посредственного кода




Не простой вопрос, на самом деле. Вот возьмем один из моих самых любимых велосипедов -- объектное хранилище ObjESSty. Сама по себе ObjESSty -- это около пятидесяти тысяч строк посредственного C++ кода (как смог, так и написал). Но вот ее использование в некоторых задачах (а именно долговременное хранение сложных С++ объектов) позвляет писать гораздо меньше прикладного кода (по сравнению с теми же SQL БД).

Так что, я занимаюсь рутиной при кодировании ObjESSty, но избавляюсь от рутины при использовании ObjESSty.

Что же до скорости -- на моем ноутбуке ObjESSty показывает время ~0.002 секунды при создании и обновлении объекта (т.к. самые дорогостоящие операции при поддержке транзакций с помощью write ahead log). Оценить, насколько это быстро я не берусь, поскольку с SQL базами данных сравнивать не совсем корректно, а других объектных БД у меня в распоряжении нет.

Д>потому что если твой велосипед не ездит быстрее остальных, то разработчик этого велосипеда — рутинщик и ламо недоученное.


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

Но и в том и в другом случае разница между рутинщиком и велосипедистом в том, что рутинщик:
a) не находит в себе сил и желания избавиться от части рутины изобретением велосипеда;
b) даже если у него возникает желание, то он не знает, какую именно часть работы нужно подвергнуть пересмотру, чтобы получить более эффективное решение.

Вот различие между мастерами и подмастерьями, имхо, лежит на уровне варианта b). Просто потому, что подмастерью еще не хватает ни опыта, ни чутья, чтобы определить точное место "бутылочного горлышка".

А вариант a) -- это уже на уровне психологии. Человек, который склонен сам браться за устранение узких мест, имхо, сможет и рутиной заниматься. Но, поскольку душа у него к этому не будет лежать, то и качество будет не самым высоким. А вот если бы ему предоставили возможность делать то, что хочется... Возьми к примеру какую-нибудь софтину для искуственной генерации ландшафтов (с помощью фракталов и других материй из высшей математики). Там ведь прорва работы -- и графический интерфейс (менюшки, тулбары, диалоги), и форматы графических файлов, и система помощи, и печатная документация и пр. и пр. Но вот все это будет иметь совершенно бледный вид, если сама генерация ландшафта будет в два раза медленнее (при том же качестве), что и у конкурентов.

Та же песня и с СУБД. Ядро СУБД, от которого зависит эффективность работы СУБД, может занимать процентов тридцать от всего объема кода (не считая сопутствующих административных утилит). Но при оценке СУБД качество работы ядра будет привлекать наибольшее количество внимания. (По крайней мере для встраиваемых СУБД, типа ObjESSty, BerkeleyDB или SQLite).

Так вот называть людей, программирующих "узкие места" (будь то генерация фракталов или система кэширования страниц) рутинщиками вряд ли возможно. Хотя бы в силу уникальности решаемых ими задач. Одним из следствий, является то, что со своими специализированными навыками эти узкие специалисты больше нигде не нужны (в отличии от тех, скажем, кто пишет пользовательский интерфейс для программы генерации ландшафтов или административных утилит СУБД).

Ну и что еще более важно -- для успешности проекта нужна нормальная команда, в которую входят и те и другие. Без внутренних войн и перетягивания одеяла на себя. Но это уже совсем другая история.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 10:53
Оценка: +2 -1
Здравствуйте, mrozov, Вы писали:

M>Более того, рост мощностей компьютеров будущего будет, видимо, связан в основном с многоядерными процессорами. Следовательно — быстрыми будут не оптимизированные вообще алгоритмы, а оптимизированные под многопоточное исполнение. И как следствие, программирование будущего — оно многопоточное. И хотя я не знаю, на каком языке мы будем писать эти программы, но то, что это не будет ни с++ ни asm — практически не сомневаюсь.


Зря не сомневаешься. Я сейчас пишу многопоточные приложения на C++ без особых проблем. Просто потому, что всей бодягой, связанной с многопоточностью специальный фреймворк занимается.

Ну и кроме того, чтобы использовать многопроцессорность и многоядерность нужно будет распараллеливание делать. Но вот имеет ли смысл делать это через многопоточность или через многопроцессовость -- это еще вопрос, который будет сильно зависеть от решаемой задачи. Ведь однопоточное приложение в разработке и отладке гораздо проще, чем многопоточное. Как следствие, часто, надежнее и дешевле.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 11:08
Оценка: :)))
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я бы не хотел, чтобы дискуссия, если она развернется, вылилась в очередное выяснение .Net против классики, C++ против C# и т.д. Я хотел бы другое обсудить — соответствие ресурсов и задач.


Тогда ответь мне на такой вопрос: для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 10:13
Оценка: +3
Здравствуйте, mrozov, Вы писали:

M>Павел, можно Вас попросить?

M>Не пишите про .net. Вы умный человек и очень знающий профессионал, но Ваши знания в этой области настолько малы, что на фоне предрассудков просто теряются.

Подумал я и решил еще раз ответить.

То. что мои знания в этой области малы — бесспорно. Тут я полностью согласен. Но вот с посылкой — коли они малы, то не судите — не согласен.

Если бы я судил о том, как правильно в .Net делать то-то и то-то и говорил при этом чушь — было бы вполне справедливо указать мне на это. Но я никого не учу, как в .Net что-то делать. я говорю о впечатлениях (моих) от того, как все это работает. С точки зрения пользователя, а не программиста. А для этого мне быть профессионалом в области .Net не обязательно.

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

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

Первый раз это было, когда на фоне безраздельного царства Фортрана, которому, как тогда казалось, нет конца, вдруг заговорили о какой-то Аде. Шуму было, поверь мне, не меньше. Правда, тогда мне решения — осваивать Аду или нет — прнинимать не пришлось , потому что она просто до нас не дошла.
Второй раз — язык С на фоне того же Фортрана. Это было еще на СМ-4. Там Паскаль и С вместе были (на ЕС в ОС ЕС их практически никто не использовал тогда). То же самое — это новое слово или нет ? Стоит изучать ? Стоит переходить ?
Потом была Ява. Тоже, кстати, шума было до потолка — скоро Ява заменит все другие языки, она переносима между компьютерами разной архитектуры и ОС и т.д. Я к этому шуму отнесся вполне равнодушно — не поверил просто, и, как выяснилось, был вполне прав. Ява свое место в мире ИТ заняла, но отнюдь не царствует в нем.
И вот теперь опять. Я и пытаюсь понять, что это такое — очередная мода или же что-то революционное ?

Если мода — черт с ней. Пройдет.
Если революционное — я должен серьезно пересмотреть свои представления.

Одним словом — куда мы идем ?

Вот и все мои предрассудки.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 11:31
Оценка: +1 :))
Здравствуйте, bkat, Вы писали:


PD>>Немного не так. Реализовать именно эту возможность не так уж сложно (другое дело, что в дос не было стандартных диалогов). Перехватить в DOS int 21h и все дела. Написать резидент, который отображал бы каталог и оперативно изменял там информацию — не более чем курсовая работа студента тех времен.


B>И это работало бы только в курсовой этого студента.

B>Для каждой новой программы это надо было бы заново специально прикручивать.

Я же ясно написал — резидент. Т.е. нечто , что сидит в ОП и по нажатию горячей клавиши этот самый каталог отображает. А в программы это встраивать бессмысленно — не может изменяться длина файла или список их, когда диалог выбора файла висит. Потому что ДОС — однопрограммная.
With best regards
Pavel Dvorkin
Re[14]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 19:48
Оценка: :)))
Здравствуйте, c-smile, Вы писали:

CS>Сдуреть можно.


Ну его нафик, Андрей. Пойду-ка я лучше на роликах прокачусь вдоль West-side NYC.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: Об эффективности - с другой стороны
От: mrozov  
Дата: 22.11.05 13:29
Оценка: +3
Здравствуйте, vdimas, Вы писали:

V>Нет, спрос на высококлассных спецов не удовлетворяется избытком низкоклассных.


Вот то-то и оно, что у тебя полностью спутаны эти понятия. Нет ничего "высококлассного" во владении низкоуровневыми технологиями. Это тут непричем.
Именно об этом я и говорю.

Нет никакой связи между знанием ассемблера и "высококлассностью". Можно быть богом в программировании и оптимизации запросов к СУБД и больше ничего о программировании не знать. И наоборот.
Re[8]: Об эффективности - с другой стороны
От: Костя Ещенко Россия  
Дата: 22.11.05 10:57
Оценка: 39 (1) +1
Здравствуйте, McSeem2, Вы писали:

MS>"Выжимание скорости" бывает разым. Вот простейшая иллюстрация — надо удалить все пробелы из Сишной строки.

MS>Реализация раз, индуссого типа:
MS>
MS>for(i = 0; i < strlen(str); i++)
MS>{
MS>   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
MS>}
MS>


MS>Знаешь, какова сложность данного цикла? O(N^3).


Не хочу занудстовать, но сложность "индусского" алгоритма — O(N^2). Похоже уважаемые участники обсуждения ошиблись по невнимательности.
На самом деле, люди не читают газеты, они принимают их каждое утро, так же как ванну. ©Маршалл Мак-Льюэн
Re[15]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 22.11.05 08:36
Оценка: 10 (2)
Здравствуйте, Дарней, Вы писали:

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


Тогда тебе могут быть интересны: Re: Совет "опытного камикадзе" если хошь
Автор: c-smile
Дата: 26.10.05
, Re[2]: Советы 5), 6) и 7)
Автор: c-smile
Дата: 26.10.05
и Re: Велосипеды и эффективность решений
Автор: eao197
Дата: 26.10.05
.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Об эффективности - с другой стороны
От: mrozov  
Дата: 17.11.05 11:08
Оценка: -1 :)
E>Зря не сомневаешься. Я сейчас пишу многопоточные приложения на C++ без особых проблем. Просто потому, что всей бодягой, связанной с многопоточностью специальный фреймворк занимается.

Это какой-то замкнутый круг, ей-богу.
— Почему на с++, а не на .net, под которым надежнее?
— Потому что .net медленный.

— Да не медленный он вовсе, хватает с огромным избытком. На VBS и то куча кода написано — и ничего.
— Не будет хватать со временем, если роста скорости процессоров не будет.

— Так ведь они многопроцессорными будут.
— Ну а я на с++ тоже многопоточно писать могу.

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

E>Ну и кроме того, чтобы использовать многопроцессорность и многоядерность нужно будет распараллеливание делать. Но вот имеет ли смысл делать это через многопоточность или через многопроцессовость -- это еще вопрос, который будет сильно зависеть от решаемой задачи. Ведь однопоточное приложение в разработке и отладке гораздо проще, чем многопоточное. Как следствие, часто, надежнее и дешевле.


Боюсь, что для большинства задач все-таки нужна многопоточность. И потом — в .net есть замечательная возможность запускать несколько доменов в одном процессе =)

Но по большому счету — речь просто о том, что хотя .net требует под себя доп. мощности, но эти мощности уже есть. А какого-то особого замедления работы managed программ на современном компьютере лично я не замечаю.
Re[2]: Об эффективности - с другой стороны
От: Mamut Швеция http://dmitriid.com
Дата: 17.11.05 13:33
Оценка: +2
NC>Более того, смею утверждать, что больщинство пользовательских пк имеют то же распределение загрузки:
NC>1 активное(рабочее приложение, это может быть редактор игра и т.п.) + Музыка(возможно) + 2-5 приложений в фоне. И где же ваша драка за ресурсы??? Видел проблемы только на старых компах(пень 100 192 Mb Ram)

Памяти не хватает дико:

На фоне (трей): Miranda, Shareaza, SharpReader, Winamp, RSDN@Home, PuntoSwitcher, Avast Antivirus, MSN Messenger, SystemScheduler, Apache, AC sound Manager, Process Explorer.

Открытые окна: 2-3 Windows Explorer, Opera (штук десять табов), Mozilla Firefox (штук пять табов).
Часто открываемые: Adobe Photoshop, Macromedia Dreamweaver.

512 MB на все это добро не хватает никак. Только винда жрет 100. Opera+FireFox+Janus — еще сто (Опера у меня нередко сам доходит до 80 МБ). MSN Messenger — 30 метров (за что? зачем?) В общем, сейчас у меня запито 528 метров (из 512). А если еще Фотошоп с Дримуивером запустить....

Вчера под вечер сидел на 800 МБ (из 512 )

Но! Есть конечно но. Если работать только с одним/двумя приложениями, то рекция этих приложений более, чем адекватная.
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[12]: Об эффективности - с другой стороны
От: OnThink Россия http://vassilsanych.livejournal.com
Дата: 18.11.05 13:55
Оценка: +1 -1
Здравствуйте, vlad_gri, Вы писали:

_>Здравствуйте, eao197, Вы писали:



E>>Так вот, если в моем распоряжении есть P4-2GHz, то у меня есть выбор -- сделать задачу за месяц на Smalltalk/Ruby или за два месяца на C++. При этом реализация на Smalltalk/Ruby будет грузить процессор на 80% (при пиковой нагрузке), а C++ -- на 20%.


E>>В пользу чего делать выбор?

_>Если поставленна задача сделать за месяц то Smalltalk/Ruby.
_>А через месяц еще задача, которая будет крутится паралельно и.т.д.
_>И начнется ...

Никаких "начнётся". Нельзя выбирать заведомо трудоёмкое решение из-за каких-то "начнётся". Вопросы надо РЕШАТЬ, а не перманентно обдумывать. Завтра вы нафантазируете ещё больше и будете писать КОНКРЕТНУЮ рассматриваемую задачу на кодах процессора?

В конце концов, программный комплекс — это совокупность программы и железа. И если заказчик ПОТОМ решит установить на это же железо ещё чего-нибудь, то это уже будет его проблема.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 17:18
Оценка: +1 -1
Здравствуйте, Шахтер, Вы писали:

Ш>Для того, чтобы построить ввысь, надо сначала покопать вглубь и заложить хороший фундамент.

Ш>Без этого высотка просто рухнет.

построить дом без фундамента можно. Построить фундамент без дома тоже можно, только это абсолютно бессмысленно.

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


Как быстро ты записал меня в подмастерья, а себя — в мастера. У тебя есть точные данные, что дело обстоит именно так?

Если уж ты заговорил про художников, давай расставим все точки над "Ё"
Ну так вот — у художников все стандартизовано куда покруче, чем у программистов.
Стандартны материалы, стандартны инструменты, и даже техники нанесения рисунка — тоже стандартны. Так что мастера просто используют набор готовых стандартов. Изобретают что-то новое только гении, которых можно пересчитать на пальцах за всю историю человечества. Вероятно, именно к этому разряду ты себя и относишь?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 19.11.05 09:11
Оценка: :))
Здравствуйте, Дарней, Вы писали:

E>>Совсем не обязательно. Я лично смотрю на это так: некоторым людям жуть как не хочется заниматься рутиной. И они (т.е. мы ) находят для себя занятия по интересам. McSeem2, скажем, делает это увеличением скорости работы графики. Я -- в изобретении велосипедов для разработчиков. Кто-то еще чем-то страдает. Факт, однако, в том, что не так уж много народу хочет заниматься подобными вещами. Либо хочет, но не настолько, чтобы этим решиться на это.


Д>Вероятно, главная особенность твоих "велосипедов" — это то, что они ездят быстрее аналогов?


Нет, главная особенность в том, что они не такие, как все остальные
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 19.11.05 12:09
Оценка: +2
Здравствуйте, minorlogic, Вы писали:

M>Я допускаю такую гипотетическую возможность , но к сожалению ни разу не встречал такого в жизни.

Я встречал таких уродов. И много встречал. Один раз пострадал конкретно. Делали программу, нужна была библиотека для COM портов(это было еще во времена DOS). Каждый делал свой модуль. И вроде бы парнишка головастый, и вроде бы не новичок. Вобщем все сделали, а COM связи нет. Клиент волнуется. Две недели его тыркали. Пригнал все таки модуль. Крутой модуль. Куча кода. На WASM. Асинхронный и еще зачем-то с приделанным кэшом. Только ни фига не работал. Ошибка сплошная на ошибке. Вобщем клиента не убедили подождать, послал он нас подальше. И что обидно, потеряли не деньги, потеряли ценного клиента. Я потом тот же модуль из принципа написал попроще, на том же WASM. День на это ушло. Асинхронный но без всяких излишеств. И функции только те которые нужны. И кода раз в 20 меньше. Если все это сделать на С и без всякой асинхронности, то и за час можно было управиться. Поэтому таких уродов без поводка нельзя держать. Крутизна никому не нужна если она не помогает создавать что-то нужное.
А из таких уродов можно сделать человека. Их просто нужно обламывать смолоду. И держать на поводке. Потому что с крутизны ничего хорошего не получается и не создается. Самое хорошее решение — простое решение. И если человек умеет находить эти простые решения — то он более ценен чем тот кто знает низкоуровненые языки.
Честно говоря сам был когда-то таким. Но у меня несколько другие обстоятельства были, и никто коммерчески от меня не зависил. К сожалению рядом не было старших товарищей, и учился на своих ошибках. И стремлению к простоте, путем ушибов я вроде научился.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 19.11.05 13:19
Оценка: -1 :)
Здравствуйте, minorlogic, Вы писали:

M>В общем я не про себя говорил. Но ЛИЧНО я страемлюсь заниматься интерессными для МЕНЯ задачами. Я не горжусь занимаясь рутиной , для меня это не ценность.

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

M>Ну это уже твои комплексы , я например вижу завитсь к людям которые не хотят заниматься рутиной , а стремятся заниматься тыорчеством. Зависть эта черная и не полезная.

Чего, чего? Меня обвиняют в зависти? Послушайте, у меня высокое самомнение о самом себе. Может быть я фору дам многим по этому показателю. Но самомнение основано на оценках самого себя, и не в коем случае на оценках других.
M>Поверь мне , люди занимающиеся творческими задачами , многим жертвуют.
О, великий гуру! Спасибо что ты посетил этот сайт и послал творческое сообщение заблудшей овце. Мы благодарны тебе за то что ты не погнушался оставить свои творческие отпечатки на творческой клавиатуре. Спасибо вам за то что жертвуете себя ради нас.

Вобщем, отвечать больше не буду, вы перешли на личности, советую прочитать правила форума.

Без подписи.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 03:20
Оценка: -2
Здравствуйте, eao197, Вы писали:

E>Нет, главная особенность в том, что они не такие, как все остальные


в таком случае, уважаемый, ты тоже занимаешься рутиной и клепанием гор посредственного кода

потому что если твой велосипед не ездит быстрее остальных, то разработчик этого велосипеда — рутинщик и ламо недоученное. Во всяком случае, именно в этом меня пытаются убедить
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re: Всего пара слов: деньги решают все (+)
От: gwg-605 Россия  
Дата: 21.11.05 06:10
Оценка: +1 -1
необходимое железо + стоимость разработки + стоимость поддержки = затраты. Минимум затрат большая прибыль.
Re[10]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 21.11.05 09:54
Оценка: +2
Здравствуйте, eao197, Вы писали:

E>Может измениться. Вот у меня был случай -- в одном месте, которое вызывалось слишком часто, было два обращения к new. В многопоточном приложении, где каждый new -- это очень дорого. Я переписал это место так, что new вызывался только один раз. В результате большой кусок кода заработал в два раза быстрее и перестал быть узким местом. Еще больших результатов можно было бы достичь, конечно, изменением алгоритма (там даже не алгоритм а целая идеология бы поменялась), но затраты на такие изменения алгоритма были бы не соизмеримы с полученным выигрышем, а сложность решения серьезно бы увеличилась.


Угу. Я именно подобное и имел в виду. У меня, к примеру, new где-то в глубине циклов априорно антипатию вызывает — знаю, чего это стоит, Это не значит. что я от него обязательно откажусь, но стоп-сигнал сразу срабатывает — дескать, что это я такое здесь делаю ? Может, и оставлю в конце концов, но бездумно не пропущу.
With best regards
Pavel Dvorkin
Re[9]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 15:13
Оценка: :))
Здравствуйте, Дарней, Вы писали:

Д>абсолютно не понимаю, что ты хотел продемонстрировать этими прописными истинами


Давай мы с тобой не будем спорить? Ибо "Если ты споришь с идиотом, вероятно, то же самое делает и он". Это ни в коем случае не оскорбление, наоборот — это некий само-сарказм. Чем больше мы с тобой разговариваем, тем большим идиотом я себя чувствую.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[10]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 16:08
Оценка: +1 -1
Здравствуйте, McSeem2, Вы писали:

MS>Кто познал сущность О-нотации, тот истинно крут! Какая такая "особенность strcpy" может убавить O?

Честно говоря такие шняги лучше мерять от и до. Это будет примерно O(N^2)<=x<=O(N^3). В зависимости от кол-ва пробелов.
Хотя O(N^2) по сравнению с O(N) — при большом N уже показания к сипуке.

Сейчас наставят минусов, но все-таки признаюсь.
Если бы это было в месте в котором я был бы уверен в том, что количество строк 2-3 и запускается только при загрузке, то может быть я бы пропустил такой код. Гадость но не смертельная. Даже под гнетом того, что код может перекочевать. Если бы в чем-то повторяющемся, или в месте где влияет на нагрузку работы — сипука.

С уважением, Gleb.
ЗЫ Ставьте минусы предателю.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.05 17:20
Оценка: +1 :)
Здравствуйте, McSeem2, Вы писали:

MS>Здравствуйте, Дарней, Вы писали:


Д>>то есть примерно то же самое, что я предлагал

Д>>хотя дьявол, как всегда, в деталях

MS>Чтобы понять, что "дьявол в деталях", надо попытаться имплементировать. А этого в W3C никто не любит. Они же "теоретики"! Едреныть. И судя по неким косвенным признакам, они тоже не понимают сущности О-нотации. Ибо, если бы понимали, не гнали бы такую лажу. С SVG — то же самое. А потом они удивляются, почему это убогий Flash завоевал полмира, а наш великий и могучий SVG до сих пор в глубокой... где-то между ягодицами.


Угу. я второй месяц пытаюсь найти автора придумавшего вот это:

8.3.2 Indirect adjacent combinator
Indirect adjacent combinators are made of the "tilde" (~) character that separates two sequences of simple selectors. The elements represented by the two sequences share the same parent in the document tree and the element represented by the first sequence precedes (not necessarily immediately) the element represented by the second one.

Example:
h1 ~ prerepresents a pre element following an h1. It is a correct and valid, but partial, description of:
<h1>Definition of the function a</h1>
<p>Function a(x) has to be applied to all figures in the table.</p>
<pre>function a(x) = 12x/13.5</pre


Т.е. имея такой селектор и для того чтобы сказать "нет — не подходит" надо сканировать дерево не только вглубь но еще и вширь.
Сдуреть можно.
Re[11]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 23.11.05 09:42
Оценка: +2
Здравствуйте, Дарней, Вы писали:

V>>Мы говорили об умельцах выжимать максимум. Так вот, овладение любой технологией/АПИ никогда не начинается снизу. Оно начинается сверху.


Д>любая технология/АПИ — это всего лишь инструмент, средство для воплощения идей программиста в работающий код. Фактически, АПИ — это самое "дно" тех понятий, которыми оперирует любой программист. Над которым у любого хорошего программиста должно быть еще много-много уровней абстракции, с которыми он умеет работать.

Д>Так что если человек умеет работать только с C#, например — это совсем не значит, что он "высокоуровневый специалист". На самом деле, это всего лишь неквалифицированный кодер.

Я немного не уловил это согласие или возражение. Если человек умеет работать только с C#, и плохо понимает, что за этим кроется, то, согласно моему видению, он действительно — неквалифицированный кодер.
Re[5]: Ха! Мы забыли про Mobile девайсы
От: c-smile Канада http://terrainformatica.com
Дата: 25.11.05 05:27
Оценка: +2
Здравствуйте, Igor Sukhov, Вы писали:

IS>Здравствуйте, c-smile, Вы писали:


IS>>>Здравствуйте, c-smile, Вы писали:

CS>>>>а не написать ли нам это на Compact Framework...
IS>>>судя по коментариям, подобное поведение и требовалось получить.

CS>>Не понял до конца замечания ну да ладно...

CS>>Мы разговаривали с MS. (Они знают наше приложение)
CS>>Это была их рекомендация. Мы просто её проверили.
IS>а вы от них ждали что они вам порекомендуют решение
IS>"от конкурентов". Нет (1).

Сравнивали мы с MS VC++ + SQLite.
Если это конкуренты то тогда да.

CS>>А комментарии... как тебе сказать... мы же профи

CS>>в конце концов. Да, мы это знали заранее.
CS>>Поэтому-то инициатива исходила не от нас.
IS>Именно про это я и писал. Когда изначально (2) ставиться
IS>задача показать что на солнце лететь ночью
IS>нельзя, это обычно легко доказывается.

Напрасно ты сомневаешься в нашей объективности.
Не было желания быть необъективным.

Наши комментарии отражают степень нашего собственного
обалдения от результатов.

Принимая во внимание что SQLite на той же структуре базы
работает на порядки быстрее и тот факт
что на мобильной платформе программирование UI что на C++ что на
.NET одинакового порядка сложности товарищи ясное дело выбрали Пепси.

IS>(1) + (2) приводят к предубеждению в самом начале тестирования.

IS>Начиная с предубеждения, получить непредвзятый результат невозможно.

Я не понял а при чем здесь предвзятось или нет.
.NET что девочка какая, а мы пацаны в поре созревания?

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

Но воевать с таким SQL server'ом на батарейках... это дороже встанет.

Если уже и заходить на managed code то уж явно лучше использовать SuperWaba.
Она (VM/runtime) работает на Win, Palm и Symbian.

Назови хотя бы одну причину ради которой им нужен CF.
Только без этой эзотерики про потусторонние мотивы.
Re[12]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 27.11.05 19:48
Оценка: 26 (1)
Здравствуйте, vdimas, Вы писали:

GZ>>Так уж это важно? Ну не клеются регуляры в классический конечный автомат с третьим подклассом грамматики Хомского. Значит это не подходит под термин теории. Зато то что на практике регуляры умеют больше. И в практике существует точно такой-же термин "регулярное выражение", который может обрабатывать скобки. Это ведь не важно. Важно что он интересуется, расширяет свой кругозор, а это более важно.


V>Ты не так понял. Меня ничуть не смутило, и не удивило, что он как-то по другому считал ДО этого. Меня проразил факт упорства и само трудное восприятие тех вещей, которые он должен был воспринимать как повторение пройденного (я прекрасно знаю кафедру, с которой описываемый чел вышел). Я упомянул про лоботомию именно в этом смысле — невозможность переосмыслить собственные знания.

Для этого человека было важно подтвердить свои знания(которых возможно не было). В условиях стресса. Я вполне допускаю что он пытался действовать догадками, и доказывать их. У меня на экзаменах такое прокатывало не раз.
V>На собеседовании молодых преттендентов практически бесполезно проверять накопленный багаж, интересней посмотреть на способность рассуждать, обобщать, отделять значимое от второстепенного (пусть даже он где-то будет совсем не прав,интересна сама способность к рассуждениям и принятиям решений).
+1

V>Для меня лично тот факт, что вчерашний студент изучил эти перловые регулярные выражения — ни плюс и не минус, а абсолютно ничего... Не показатель в общем, ибо это знания прикладного характера. И у него еще нет их некоей критической массы, чтобы можно было хоть как-то пытаться их проверять.

Многие не обладают и этим. Как плюс можно считать то, что он изучил. И если умеет учиться, то если родина позовет, то выучит и то что нужно.

V>Почему именно так? Вот пример на те же регулярные выражения (надуманный... только что)

V>Пусть у нас есть задача создать некий динамический лексер. Т.е. в некоем виде в "одно место" поступают правила для текущего разбора (пусть в удобно закодированной форме), а в "другое место" — входные цепочки для того самого разбора. Предположим, я предложу решить подобную задачу преттенденту и попрошу обосновать решение. Независимо от того, как он решит задачу, без обоснования решения и сравнения различных путей решения, его собственное будет стоить 0 целых 0 десятых.
V>В данном случае очевидны 2 решения (на основе имеющихся технологий):
V>- динамически строить "перловые" регулярные выражения
V>- динамически строить конечный автомат самому (или с помощью некоей известной либы)
Для этого нужно знать эту известную либу. Я например, в последнее время не пользовался ни одной либой которые бы строили конечный автомат. Максимум — COCO/R в котором автомат с магазинной памятью. А он конечным автоматом не является с одной стороны, но может функционально может его заменить.

V>В зависимости от различных входных условий может оказаться следующее:

V>- построить автомат самому сложнее/не сложнее/легче, чем построить регулярные выражения
V>- требования к эффективности высокие/не высокие/отсутствуют
V>- набор входных правил меняется "очень часто"/"не часто"/"редко".
V>И какой смысл будет рассматривать его конкретное решение,если человек недостаточно хорошо представляет, сколько он за свое (неважно какое) решение платит и где именно.
А ты абсолютно уверен что можешь быть экспертом? Я не знаю ни одной такой области где я знаю все.

V>Я и сам закончил не многим более 10 лет назад и еще прекрасно помню уровень многих своих друзей-одногрупнников на момент выпуска. Пытаюсь найти сейчас примерно такого же уровня — пусто... Блин, краткий обзор современного "продвинутого" выпускника: немного джавы, HTML, немного С++, какие-то обрывочные знания MFC/ATL/COM/Дельфи и... глубочайшие провалы в основах (на фиг тогда сдались те обрывки знаний?). Такое ощущение, что безграничная доступность машинного времени (копм у всех) банально отвлекает студентов от учебы. Написание программ мартышкиным способом (методом тупого тыка и перебора подходящих вариантов) — не лучшее времяпрепровождение. ИМХО, наоборот — весьма отупляющее занятие.

Нет. Я думаю причина в другом. В процессе учебы(по крайней мере так было у меня) выводится такая формула: нужно изучать только то что пригодится дальше, а то что не пригодится лучше просто сдавать. Сделать адекватное разделение в условиях недостатка опыта очень сложно. Я до сих пор жалею что положил на Лисп с Прологом.

V>-----------------

V>Если тебе интересно для сравнения. Любое зачитывание "в лоб" закодированных правил лексического разбора — это суть построение NFA. Собственно, сама задача построения лексера — это привести NFA к DFA (причем для реального использования даже не обязательно потом минимизировать, ибо это никак не отражается на эффективности).
Не обязательно. Решать можно и в NFA. А иногда и только в NFA. Об этом ниже.
V>Скажу только, что сразу после института я бы закодировал подобную задачку весьма быстро, а так потратил примерно пол-часа. Вот код процедуры перевода:
[Скипнуто]

V>Есть еще алгоритмы построения сразу DFA из входного описания, тогда общий код будет еще короче и не нужен промежуточный NFA. Правда, эти алгоритмы не подходят для построения лексера из описания языком расширенных регулярных выражений (не перловых).

V>Не думаю, что построитель перловых регулярных выражений был бы проще, скорее — ровно наоборот. (Опять же, от преттендентов не требуется готовый код, требуется умение рассуждать, сравнивать, пытаться обнаруживать значимое)
Да нет я думаю проще. Я не эксперт в этой области формальных языков, но полчаса поиска в интернете, что такое DFA и NFA(этих буржуйских абривеатур не знал) дал мне не только информацию о том что это детерменированный и недетерменированный конечные автоматы, но и то о чем я догадывался и раньше. За детерменировость автомата приходится платить увеличением количества состояний. Но верхняя цифра меня немножко убила — 2^n. Поэтому для построения детерменированного автомата нужно пристальней смотреть на сами входные лексемы. Универсальным такое назвать сложно. Кроме того был сразу же найден хороший алгоритм построения DFA из NFA с минимизацией в процессе трансформации(ссылку не дам, уже потерял, но источник называется A.A. Пестов, A.A. Шалыто "Преобразование недетерминированного конечного автомата в детерминированный", Санкт-Петербургский государственный университет информационныхтехнологий, механики и оптики. Найдено по гуглу.) Это может мало для принятия решений, нужно конечно больше информации, но думаю что за сутки можно выбрать уже готовый алгоритм и реализовать его. Конечно, у меня есть некоторая подготовка по грамматикам, но для разговора по данной области сходу я бы поостерегся. И вообще, лучше бы на основе имеющихся знаний выбрал готовый продукт. Проблема не в том, что я не смогу, проблема в том что этот код надо поддерживать. Протестировать грамматику, даже автоматную, весьма сложно.
Но результат такой, вряд ли ты бы меня взял к себе на работу если бы я не знал о чем будет разговор и не подготовился. К тому же перла я не знаю Так что, либо я бездельник и никому не нужный туниядец, либо у тебя слишком субъективное мнение.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 20.11.05 14:55
Оценка: 20 (1)
Здравствуйте, Cyberax, Вы писали:

C>Уже нет Начиная с первого GeForce на чипах появился GPU — это такой

C>быстрый векторный CPU, заточеный специально под графику. Он умеет
C>перемножать матрицы, рассчитывать тени и т.п.

Это все поятно. Но ни одна железяка не умеет триангулировать полигоны. Это я к тому, что нагрузка на CPU нисколько не ослабевает. Точнее, тут действует походный принцип — как только у тебя освобождается место в рюкзаке, оно сразу стремится быть заполненным чем-то более тяжелым.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 22.11.05 11:01
Оценка: 18 (1)
Здравствуйте, mrozov, Вы писали:

M>В наше время гораздо чаще спецы по низкоуровневым технологиям выступают в роли ассинизаторов. Нырнули с головой в дерьмо, от которого нормальных людей воротит, что-то там повернули, дали возможность нормальным людям нормально работать дальше. Очень многие именно так сейчас к этому и относятся. С чего ты взял, что прав ты, а не они?


Разница во взаимозаменяемости. Первые легко могут заменить вторых. Наоборот — никак. Первых — днем с огнем сейчас ищи, вторых — как саранчи, и т.д.
Re[4]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 19.11.05 06:59
Оценка: 14 (1)
Здравствуйте, mrozov, Вы писали:

M>Возможно. Хотя возможно также, что вы просто не умеете их готовить.

M>С одной стороны — GUI повышенной сложности я не делал.
M>С другой — делал достаточно нестандартные и не заметил торможений вообще.
M>Т.е. вы можете быть правы. Но моя практика показывает обратное.

Наверное.

По поводу VB6 и VB.NET вот ссылка из MSDN

VB.NET, although slower than VB6 where Windows Forms are concerned, can do a few things much faster than VB6


здесь
Re[2]: попробую еще раз объяснить
От: Alexey Axyonov Украина  
Дата: 18.11.05 08:43
Оценка: 8 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>1. Если предельная эффективнсть не требуется — значит, железо сейчас избыточно. Если бы железо было намного слабее — писали бы то же, но эффективно, выжимали бы из железа все, чтот можно. Дороже. Хуже. Но делали бы.


Есть такое мнение, что большая часть десктопного железа сейчас продается из-за игр. Там же сплошная алгоритмика и перемалывание огромных объемов данных.
Каждый год в этой отрасли появляются монстры которые способно загрузить на все 100% не только существующее железо, но и пару следующих поколений. Вспомним хотя бы Doom3 и рост продаж GeForce 6 (причем не самых дешевых из семейства) связанный с его выходом. Либо нынешний Quake4 способной на всю загрузить Geforce 7800 GT и двухъядерный Athlon 64 4800+ (заметь, оба компонета топовые):

Заблуждениям – нет! Тесты 28-и процессоров в самых современных играх



И игры продолжают требовать все более мощного и узко-специализированного железа (например того же физического сопроцессора). Оправдано ли это? Думаю да, хотя есть и исключения (к примеру: Civilization IV, как можно было сделать из походовой игры такого тормоза я не знаю). Сравни игровую атмосферу в том же F.E.A.R c чем-нибудь что ты способен запустить на P200 и все станет ясно. Жаль только, что в последнее время атмосфера эта создается эффектами а не геймплеем.

Игровая индустрия приносит большие деньги как производителям и издателям игр, так и производителям железа (по крайней мере AMD, Intel, nVidia, ATI и Creative уж точно). И именно индустрия развлечений привела к тому железу, что сейчас мы имеем на своих столах.

В серверном сегменте все происходит же гораздо инертнее.
... << RSDN@Home 1.2.0 alpha rev. 619>>
Re[15]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 25.11.05 11:49
Оценка: 8 (1)
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, vdimas, Вы писали:


V>>С этим как раз никто не спорит. Я считаю, что не может быть человек специалистом и при этом не разбираться досконально в сути того, чем оперирует. Т.е. мне явно кажется надуманной точка зрения, что бывают "высокоуровневые" спецы, которые слабо разбираются в подробностях современной выч. техники, осей и т.д.


Д>Смотря до каких подробностей

Д>В любом случае, это необходимо, но отнюдь не достаточно.

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

Упомянутые тобой в предыдущем посте "перекосы" и "трещины" тоже не случаются сами по себе. В современных многоуровневых приложениях слишком много аспектов. Помимо грамотной модели предметной области, которую строит разработчик ПО, ему приходится приличную часть времени тратить на разработку довольно-таки низкоуровневых, с т.з. целевой задачи, протоколов взаимодействия частей своей системы.

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

Т.е., картинка современного проектирования получается немного смешной:
— оцениваем общие технические характеристики, и требования, выбираем общий вид архитектуры (N-tier и т.д.)
— выделяем наиболее общие сценарии работы с сущностями на этапе предварительного анализа, разбиваем их на классы (справочные данные, оперативные данные, регистры и т.д., по возможности, выделяем как можно больше общих моментов — он это уже детали имплементации)
— строим некую среду поддержки прикладных сущностей, которые , как предполагается, будут принадлежать некоторому классу, т.е. поддерживаться неким набором функциональности (которая, например, может представлять из себя комбинацию политик на различные аспекты). Такие вещи, как DAL, презентационный уровень, обмен м/у уровнями — как раз являются основой этой среды поддержки, и, по-сути, являются лишь техническими подробностями ее реализации. Тут уместно замечание, что до сих пор (!!!) многие путают DAL, например, и другие подробности с целевой прикладной функциональностью, т.е. разрабатывают эти моменты одновременно (одновременно с самой прикладной сущностью разрабатываются элементарные операции по ее персистентности), что мне представляется нелогичным (пусть по другому иногда никак, это не показатель). Подходы многих либ ORM (а у нас своя разработка этого плана ), в сочетании со встроенными ср-вами обеспечения транзакционности, параллельности доступа к персистентным хранилищам и т.д. позволяют как-то абстрагироваться от этих технических деталей.

— и вот, наконец, при детальной разработке модели прикладной области, те самые целевые прикладные сущности мы "впихиваем" в рамки имеющейся среды поддержки прикладной области. Т.е. никакая прикладная функциональность просто так не реализуется (хотя, должна была бы, по идее, не так ли?), любые прикладные требования пропускаются через призму получившихся технических возможностей, и весьма сильно дополнительно ограничиваются (т.е. роль предварительного анализа весьма велика, или же надо производить бесконечное число итераций на этапе проектирования). "Все что угодно" просто так не реализуешь. Если очередное некое требование совершенно не влазит в общую модель, то надо или подумать о расширении модели, или же ... о самой необходимости подобного требования (хе-хе, второе — весьма распространенный случай, если реализовать некую финтифлюшку сложновато, читай — дороговато, от нее просто-напросто отказываются. Кто? — сами заказчики).

Одним словом получается, что на разработку технических подробностей архитектуры обычно тратится куда как больше времени, сил и таланта конкретного архитектора, чем на модель прикладных целевых сущностей, которые вообще зачастую отдаются разработчикам более низкого ранга в иерархии (смешно, но факт). И вся эта т.н. "высокоуровневая архитектура" — суть выбранный способ оперирования низкоуровневыми вещами (а не реализация прикладной модели). Т.е. она, хочешь или не хочешь, но весьма плотно завязана на такие низкоуровневые вещи, как:
— возможности современных "доступных" компьютеров (может быть принято решение о кластеризации)
— характера поведения сети, ее технические характеристики, особенности сетевых протоколов
— возможности различных программных платформ, начиная от ОС, далее серверов WEB и БД, и заканчивая высокоуровневыми либами-средами, как для С++, так и еще более высокоуровневыми, типа Java или .Net (причем архитектор обычно очень хорошо разбирается именно в подробностях, и зачастую лучше кодера... ему же решения принимать надо! т.е. надо владеть максимумом информации)

--------
А теперь можно опять вернуться, ну например, к этому посту, и снова по кругу
http://www.rsdn.ru/Forum/Message.aspx?mid=1501665&amp;only=1
Автор: vdimas
Дата: 23.11.05
Re: Об эффективности - с другой стороны
От: SergeCpp Россия http://zoozahita.ru
Дата: 18.11.05 07:26
Оценка: 7 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>Другой пример. Зашел я полгода назад в налоговую инспекцию. Бросил взгляд на экран компьютера, и сразу стало ясно, на чем их ПО написано — FoxPro для DOS ни с чем ни спутаешь, внешний вид уж больно характерный. Создано это ПО лет 10 назад, и до сих пор благополучно работает. Не знаю, какте там у них клиентские машины и сервер, но вряд ли что-то фантастическое. Да и зачем — в инспекции работает не более 100 человек, а каждый сотрудник 95% процентов времени работает с клиентами и бумагами, а не с компьютером. Сомневаюсь, что одновременно к этому серверу у них бывает больше 5 обращений когда бы то ни было.


Я работал в налоговой 8 лет. Не пользователем...

Несколько десятков клиентов. Сеть 10 мбит.

Fox тянет ВСЁ по сетке...

3 одновременных обращения и тормОзим... сильно тормОзим... очень сильно...
http://zoozahita.ruБездомные животные Екатеринбурга ищут хозяев
Re[4]: Что такое оптимизация на примере.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 10:11
Оценка: 7 (1)
Здравствуйте, minorlogic, Вы писали:

E>>т.е., наличие настолько эффективного кода, который уже бесполезно вылизывать.


M>Нет не безполезно , там было куда вылизывать , но было видно : "разработчики знали, что это узкое место".


Но ведь затраты на оптимизацию достаточно хорошего кода не окупились бы, т.е. код был достаточно хорош. Что уже не мало.
Почему-то по ходу дискуссии здесь подразумевается, что все сразу пишут совершенный код, который дальнейшей оптимизации уже не поддается. Поэтому единственный способ дальнейшей оптимизации -- это смена алгоритма. А вот у меня другой опыт. Лично мне профайлер частенько показывает места, в которых я просто-напросто лопухнулся. И переписывание десяти-пятнадцати наиболее критичных для производительности методов поднимало производительность на порядок. Без смены основного алгоритма. И это при том, что я довольно ревносно к качеству кода отношусь.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Об эффективности - с другой стороны
От: Nickolay Ch  
Дата: 17.11.05 12:22
Оценка: 6 (1)
PD>Кстати, эта точка зрения хорошо объясняет тот факт, что ASP.NET пользуется приличной популярностью, а настольных .NET приложений очень мало. Сайт на ASP.NET работает обычно на отдельной машине, кроме него самого и средств управления там больше ничего и нет, вольготно и раздольно. Настольные же приложения работают там, где кроме них есть еще 10-20 конкурентов, поэтому то замедление, которое они бы привнесли, многим не понравится.


То, что на сервере может крутиться несколько сайтов(частое явление), или же это вообще может быть выделенный виртуальный сервер, каких несколько на одном физическом, Вы конечно не учли почемуто.

На настольной машине одновременно работают 3,5,7 — 10 максимум пользовтаельских приложений. А "активно"(т.е. жрут память и проц) 1-2. Не верим — давайте считать(приведу свой пример, буду рад если то же напишут другие о себе):
Вариант 1: Я работаю
Вижуал Студия 1-2 штуки, в каждый момент времени юзается одна из них. "Активно" юзается только при компиляции — это не так уж часто.
10-15 окон ие — считаю это как одно приложение ибо в Опере, к примеру, это и былоб одно приложение Пассивно едят немного памяти, не жрут более ничего.
ВинАмп — вот второе приложение, которое грузит проц, правда незаметно.
Ворд и(или) Ексель — тоже просто висят.
Пара TotalCommnderoв.
Ах да, забыл файерволл + антивирус возможно.
---
Итог:минимум 8, максимум 10 приложений. Из которых "активны" 2-4

Вариант 2: я гамаю
Игра + Винамп(фон файерволл+ антивирус)
4 приложения, 2х последних может не быть. Винампа кстати тоже.

Вариант 2,5: смотрю фильм
3 активных приложения.

Более того, смею утверждать, что больщинство пользовательских пк имеют то же распределение загрузки:
1 активное(рабочее приложение, это может быть редактор игра и т.п.) + Музыка(возможно) + 2-5 приложений в фоне. И где же ваша драка за ресурсы??? Видел проблемы только на старых компах(пень 100 192 Mb Ram)
при запуске нескольких вордов + студии + ие + Касперский(!)

Вообще хочу Вам задать вопрос: из чего появляется задача минимизации мощности обордудования для заданного программного продукта.
Явно не из экономических посылок, ибо в подавляющем большинстве случаев железо дешевле труда разработчиков. Тогда из чего?
Re[4]: попробую еще раз объяснить
От: Anton Batenev Россия https://github.com/abbat
Дата: 18.11.05 12:50
Оценка: 3 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

_>>Есть задача загрузки контейнера (напихать в фуру побольше разных коробок).

PD>Так нужно им это или нет ? Или они просто не знают, что это возможно ?

То, что нужно — это 100% — мне подобные запросы на заказы поступали не раз, другое дело, что я отказывался. Знают ли? Да, знают.

Нынешние руководители уже поняли, что компьютеры могут делать достаточно много работы вместо человека, они видят, упоминавшихся ранее в этом форуме бухгалтеров, которые пьют чай, в то время как 1С считает зарплату, выставляет счета и т.д. И, как мне кажется, именно сейчас наступает тот период, когда у руководителей начинает сносить крышу от такого счастья — они не спят ночами, они думают как заработать еще больше (вполне нормальное состояние, правда?!)... И вот, с заговорческим видом, они подходят к сисадмину / программеру / сыну секретарши, который обслуживает контору и спрашивают:

— А ли можно сделать так, чтобы (...)?

Ну что ответит программер? Почешет репу, сделает хмурое лицо и со словами "ну... в принципе-то можно все, что угодно..." начнет нести "ахинею" по поводу NP полных задач... Поскольку шеф не понимал бормотания программера и когда просил сделать вон тот отчет, и когда просил сделать то и се, но всегда ответ программера начинался со слов "ну... в принципе-то можно все, что угодно...", это для него ответ "да" — попробуйте теперь ему объяснить, что "вы устали, что у вас голова болит"...

З.Ы. простите, что так много — наболело
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[10]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.05 06:18
Оценка: 3 (1)
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, c-smile, Вы писали:


CS>>[поскипано]


CS>>"без особого углубления в проблему" и тем более без знания CSS

CS>>последний(ие) запрограммировать невозможно вообще.

Д>давайте лучше отставим в сторону менторский тон и поищем в идеях фатальные недостатки, несовместимые с жизнью. Если таковые там есть.


Давай. Только сначала придется разобраться что есть cascading, selector specificity.

повторю себя же:

Если хочешь серьезно вникнуть в проблему
то вот мой ответ David Hyatt (Apple, Safari)
http://lists.w3.org/Archives/Public/www-style/2005Nov/0086.html
Там в тексте есть ссылка на его блог и описаны хрустальные зАмки оптимизации в Safari.


Если пойти по ссылке то можно прочитать следующее:

WebCore (in upcoming Safari releases) has a really cool optimization that I came up with to avoid even having to compute the set of declarations that apply to an element. This optimization in practice results in not even having to match style for about 60% of the elements on your page.

The idea behind the optimization is to recognize when two elements in a page are going to have the same style through DOM (and other state) inspection and to simply share the front end style information between those two elements whenever possible.

There are a number of conditions that must be met in order for this sharing to be possible:
(1) The elements must be in the same mouse state (e.g., one can't be in :hover while the other isn't)
(2) Neither element should have an id
(3) The tag names should match
(4) The class attributes should match
(5) The set of mapped attributes must be identical
(6) The link states must match
(7) The focus states must match
(8) Neither element should be affected by attribute selectors, where affected is defined as having any selector match that uses an attribute selector in any position within the selector at all
(9) There must be no inline style attribute on the elements
(10) There must be no sibling selectors in use at all. WebCore simply throws a global switch when any sibling selector is encountered and disables style sharing for the entire document when they are present. This includes the + selector and selectors like :first-child and :last-child.


Примерно же такая оптимизация работает в Mozilla насколько мне известно.
У меня используется несколько иная схема — традиционный caching. Быстрее работает в моем случае.

Приведенный список 10 ситуаций (особенно последняя тема) сводят на нет возможные способы редуцирования O(N*M*D)
Например сайты семейства wikipedia в принципе не оптимизируемы из-за своей системы стилей.

CSS level 3 добавляет еще штук 10 селекторов которые вообще делают невозможным caching и сходные трюки.
http://www.w3.org/TR/2001/CR-css3-selectors-20011113/#selectors

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

CSS level 3 это примерно 60-70 атрибутов у одного стиля.
Т.е. style resolving это серьезно.
Re[8]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.11.05 07:51
Оценка: 3 (1)
Здравствуйте, Дарней, Вы писали:

Д>Пройти по документу, сгруппировать все однотипные элементы (линки — в одну кучку, простой текст — в другую, и т.п.). Для каждой из этих групп извлекаем соответствующий стиль и применяем ко всем элементам, которые попали в группу.

Это подходит только для случаев, когда селекторов в CSS мало. А если их много? А это — суровая реальность соврменной верстки.
Д> Вместо N * M получаем N + const * M, что уже намного лучше.

Д>Правда, узлы, для которых переопределяется CSS, усложняют положение. Придется проводить такую обработку не для всего документа в целом, а для каждого из его узлов, имеющего свою под-CSS.

Д>Альтернативный вариант — пройти по документу и построить глобальную плоскую CSS, заменив у элементов стили на новые. После чего обработать весь документ как одно целое.
Идея хорошая, но сколько она будет стоить? В том-то вся и проблема, что для "планаризации" CSS нужно для каждого элемента выполнить сканирование списка правил и выбрать те, которые применимы. Вычисление применимости селектора в общем случае требует просмотра полного списка предков, а также подглядывания в соседей.
Когда список правил построен, его нужно отсортировать по важности и специфичности. А затем для каждого из запрошенных атрибутов вычислить его фактическое значение с учетом приоритета. Многие стили придется брать из предка; некоторые атрибуты для вычисления потребуют вычисления значения атрибута предка.
Я не специалист, но геморрой тут заметен невооруженным взглядом.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[3]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 18.11.05 05:09
Оценка: 1 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Мысль любопытная, но согласиться не могу. Они же этот софт обратно себе получат, не кому-нибудь. Это же не паленый кофе, который можно в дикую страну заслать, там все сожрут, а мы будем у себя хороший кофе попивать... Что-то здесь не то.

Почему не то? Ты что думаешь, в штатах продают кроссовки Nike, собранные в белой зоне? Щас прям. Все та же малайзия и вьетнам — зарплата 30 баксов в месяц. Технологии обеспечения качества. Ширпотреб вполне можно делать безликой массой. Конечно, им хочется оставить себе интересные разработки, для которых надо мозги напрягать.
Вот, опять же, всякие id software что-то не замечены в массовом аутсорсинге.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 09:53
Оценка: 1 (1)
Небольшое отступление.

Вот многие говорят что ресурсы кушаются но непонятно куда и т.д. Забывая о многих вещах .

Например банальное окошко "Open File" , сравните такое окошко в досе и например в XP , казалось практически одно и то же делает .

Но !!!

Одна маленькая деталь, к примеру , при изменениии какого либо из файлов на диске , это изменение отобразится прямо у нас на глазах и добавится или удалится файлик в окошке.

Для юзера вроде и небольшое отличие , но сложность в реализации по всей системе огромная.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[14]: Об эффективности - с другой стороны
От: OnThink Россия http://vassilsanych.livejournal.com
Дата: 21.11.05 07:22
Оценка: 1 (1)
_>Вы когда-нибудь занимались не шарашками расчитанными на месяц, типа получил бабки и свалил,
_>а нормальным сопровождением своих же програм которое длится более n лет.
_>Деньги нужно брать не за РЕШЕНИЕ, а за то что оно (ваше РЕШЕНИЕ) будет работать и приносить клиенту прибыль.
_>n — 1,2,3 и.т.д

Согласен. Это больше вопрос отношения к делу. Мой подход подразумевает отношения с заказчиком как разработчик-заказчик, а не пиявка-жертва. При этом подходе архитектуру надо проектировать. Это работа. Но лучшая работа, чем лишний труд, основанный на бездумном загадывании на будущее.
РЕШЕНИЕ, в моём понимании — именно решение задачи, сформулированной заказчиком. Предполагается (с некоторыми допущениями ) что заказчик знает, что он делает, и вы не думаете за него на каждом шаге. И если Вы видите дополнительные проблемы (в нашем понимании — задачи ) которые встанут перед заказчиком, лучше сразу сообщать ему об этом, или закладываясь на эти задачи, хотя бы ставить заказчика в известность.
А не работать на вырост просто так, потому что вам так придумалось. Это тоже должно быть частью РЕШЕНИЯ.

Но это только моя позиция. Я её Вам не навязываю.
К примеру, некоторые здесь считают алгоритмирование — основной задачей программирования, а всё остальное фуфлом. У каждого свой подход, и, исходя из этого, своё место в жизни.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Об эффективности - с другой стороны
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.11.05 10:18
Оценка: 1 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Вообще-то "художественное мастерство, которое скрывается под словом "дизайн"" — ИМХО не дело программиста вообще. Для этого дизайнеры существуют. А для "навыки психологии www-user-а" есть специалисты по психологии, эргономике и т.д.


Ты что-то говорил про оторваность преподавателей от реалий бытия? Не в твой огорд камень, но мы все знаем как должно быть, но работают в этих условиях единицы. И, когда приходит заказчик, ковыряясь антеной от сотка в носу и говорит "Э..." — будь добр — выполни, если хочешь прокормить себя и семью.

PD>Я, например, ни за что красивую иконку не нарисую. Не умею, и все, нет у меня художественных способностей. Ну и что ?


А то, что ты не можешь заменить гуйщика на требуемом уровне (т.е. речь шла о полной взаимозаменяемости) будь ты трижды гуру низкоуровневого программирования. Собственно это я и имел ввиду, когда оспаривал утверждение vdimas о том, что "Первые легко могут заменить вторых. Наоборот — никак". Обратного утверждения о том, что заменить один другого не может в принципе, я тоже не говорю. Да, я могу писать интерфейс, я даже могу писать HTML-ки... Но как это будет выглядеть? Наш веб-программер, наверняка, если придется спустится и до API и прочего "нижнего", но как это будет написано и как это будет работать?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 11:00
Оценка: :)
Здравствуйте, mrozov, Вы писали:

M>Павел, можно Вас попросить?

M>Не пишите про .net. Вы умный человек и очень знающий профессионал, но Ваши знания в этой области настолько малы, что на фоне предрассудков просто теряются.

Да нет у меня никаких в отношении .Net предрассудков. Я искренне пытаюсь понять — что из себя представляет это явление как таковое и куда оно нас ведет.

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

А вообще мои замечания — не о .Net вовсе, а о соответствии ресурсов задачам.
With best regards
Pavel Dvorkin
Re[7]: Об эффективности - с другой стороны
От: mrozov  
Дата: 17.11.05 12:07
Оценка: :)

Евгений! А ты в курсе, что мы с тобой знакомы? Заочно?
До меня это только что дошло, когда ты об smpp заговорил.
Я работаю на одного из клиентов твоей компании. Ты даже можешь (возможно) мое мыло в своей переписке найти.

Я кстати, на нашей стороне проблему неравномерной загрузки решаю посредством MSMQ. Вообще — смычка там такая — библиотеки c++ используются из managed c++ dll, которая интегрируется дальше, уже в чисто c#-ый проект.

А про то, что основной враг быстрых программ — кривые руки — я знаю очень хорошо, на собственном опыте в том числе. Буквально на днях в очередной раз в этом убедился, ускорив операцию раз в 100, убрав ненужную операцию (я бы это назвал — денормализацией программы) и примерно на 5% в результате всяких микро-оптимизаций.
Re: Об эффективности - с другой стороны
От: ghecko Россия  
Дата: 17.11.05 12:39
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>Кстати, эта точка зрения хорошо объясняет тот факт, что ASP.NET пользуется приличной популярностью, а настольных .NET приложений очень мало. Сайт на ASP.NET работает обычно на отдельной машине, кроме него самого и средств управления там больше ничего и нет, вольготно и раздольно. Настольные же приложения работают там, где кроме них есть еще 10-20 конкурентов, поэтому то замедление, которое они бы привнесли, многим не понравится.


Скорее всего популярность ASP.NET обясняется тем, что это очень удобная технология разработки для WEB, во всяком случае удобнее ASP. Ну и еще тем, что, по сути ничего другого под Win просто нет

PD>1. Рост мощностей продолжится прежними темпами. В этом случае и для многих других задач станет возможным пренебречь эффективностью. Возможно, это коснется и настольных приложений. Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост".


Вряд ли это так. У меня на P4-2.26 c 256Mb Ram вполне нормально работают: Firefox + 2Explorer'a + WinAmp + Fiewall + Anitivirus + VisualStudio 2005 + еще что то может быть не очень тяжелое, хотя вчера еще Photoshop запускал. И работать вполне можно. А ведь 256Mb — это по современным меркам мало.
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re[4]: Об эффективности - с другой стороны
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.11.05 13:16
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я бы не хотел, чтобы дискуссия, если она развернется, вылилась в очередное выяснение .Net против классики, C++ против C# и т.д. Я хотел бы другое обсудить — соответствие ресурсов и задач.


Тогда зачем нужно было в своем тематическом сообщении помещать свои предрассудки на тему дотнета? Глядишь не сделай ты это и разговор мог бы пойти совсем в другм русли.

mrozov прав. Тебе лучше, по крайней мерее пока, не высказываться о дотнете и темболее о его производительности. Для этго тебе неплохо было бы по глубже разобраться в вопросе.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 13:24
Оценка: -1
Здравствуйте, mrozov, Вы писали:

M>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>А вообще мои замечания — не о .Net вовсе, а о соответствии ресурсов задачам.


M>Да ну?


M>"Похоже, авторы .Net именно на это и рассчитывают — система явно сделана "на вырост"."

M>Не про .net? Явно!?

Ну и что ?

M>"Сервер на ASP.NET — это новый русский, отгрохавший себе особняк на 20 комнат и не знающий, что теперь с ними делать" Не про .net? Asp.Net у нас теперь стал дико неэффективным web-сервером? С каких пор???


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

M>"можно позволить и 2-3 кратную потерю эффективности в той же .Net " Это тоже не про .net? Какую-какую потерю эффективности? Доказательства голословных обвинений в студию!


Я уже не раз сравнения производительности проводил. См. топики здесь и в .net.

M>И настольные .net приложения у нас теперь не пользуются популярностью, оказывается, из-за проблем с производительностью. Ага.


http://www.rsdn.ru/poll/1275.aspx
Автор: Pavel Dvorkin
Дата: 12.10.05
Вопрос: Сколько профессионально сделанных программ для .net имеется на Вашем компьютере ? (Pavel Dvorkin)
(Повтор голосования #937 спустя год)


Сколько профессионально сделанных программ для .net имеется на Вашем компьютере ? (Pavel Dvorkin)
(Повтор голосования #937 спустя год) (Pavel Dvorkin)
Ни одной 52 36,36%
Не больше 3 66 46,15%
Не больше 5 16 11,19%
Не больше 10 6 4,20%
Больше 10 3 2,10%

О причинах я могу только судить, а вот результаты...
With best regards
Pavel Dvorkin
Re[5]: Об эффективности - с другой стороны
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.11.05 16:10
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Вообще-то эра многопоточных приложений наступила давно.


Это вряд ли. И не наступит пока многопроцессорные решения не станут на рынке основными. Многопоточное решение практически всегда сложнее, медленнее и глючнее однопоточного на однопроцессорной машине.

E>А если один домен зависнет?


Домен не может зависнуть, он с потоком никак не связан.
... << RSDN@Home 1.2.0 alpha rev. 619>>
AVK Blog
Re[7]: Об эффективности - с другой стороны
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 17.11.05 16:31
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>А что до глючности, то на многопроцессорной технике они еще более глючные (имхо, конечно),


Разумеется. Но там хоть овчинка выделки стоит. А вот если я сейчас начну переписывать алгоритмы януса на многопоточный лад — кому от этого станет лучше?
... << RSDN@Home 1.2.0 alpha rev. 619>>
AVK Blog
Re[3]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 08:51
Оценка: -1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, McSeem2, Вы писали:


MS>>На самом деле это всего лишь вопрос личных предпочтений. Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности. Другие задачи мне не интересны. Ну не интересны и все тут — рутина и тоска зеленая.


Д>Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!

Д>Другим людям нравится решать сложные задачи, но простыми способамами — например, писать свои операционные системы, языки программирования и так далее. Пусть они даже работают не так быстро, как возможно — зато делают такие вещи, которые до них никто раньше не делал.
Д>Вероятно, выбор одного из этих вариантов зависит от особенностей менталитета каждого программиста. Одним нравится копать вглубь, другим — строить ввысь.
Д>Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?

Я так понимаю что человек который это написла , и близко не представляет сложности задач по быстрому "выводу треугольника". Которая НА ПОРЯДКИ труднее лабания горы посредственного одноразового кода.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 09:51
Оценка: -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Или то, что хорошо понимают, но что вызывает эту тоску — именно потому. что понимают


если так хорошо понимают — почему их имен нет в списке самых богатых людей мира?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 11:10
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Что касается моего отношения к .Net, могу сказать следующее. Я хочу понять, что это — новое слово, генеральный путь или же просто очередная мода ?


Генеральный путь.

Давай я тебе пару примеров приведу: Windows vs DOS, Windows vs OS/2, IE vs Navigator, VisualC++ vs (Borland C++ + Zortech C++ + Watcom C++ + любой другой C++), Microsoft Office vs любой другой Office, Windows Mobile vs PalmOS.

Сейчас мы наблюдаем .NET vs (Java + C++ + все остальное, что не сможет переползти в .NET).
В общем, доминировать со временем будет .NET, адназначна! ((C)Владимир Вольфович).
Но, если вспомнить закон потребления пива, то большинство задач (80%) будет делаться минимальным (20%) набором инструментов, т.е. .NET. Но я надеюсь, что мне повезет заниматься оставшимися 20% задач

PD>Одним словом — куда мы идем ?


Re: Куда катится мир ?
Автор: eao197
Дата: 19.07.05
см. анекдот про орла и воробья.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 11:34
Оценка: +1
Здравствуйте, Шахтер, Вы писали:

Ш>Нет там никакой сложности -- подписка на уведомление об изменении каталога.


Я полагаю, что minorlogic имел в виду, как это в системе организовано, т.е как она шлет эти уведомления. Это несколько сложнее, задействуются объекты ядра (файл), а для этого нужно, чтобы был диспетчер объектов и т.д — в общем, ядро NT.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 18.11.05 14:37
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

MS>Я бы попросил читать то что написано, а не то, что хочется прочесть. Внимательнее, пожалуйста. Вывод треугольников — это действительно примитивная задача, а "вывод вдвое быстрее" — примерно такая же рутина, как и ковыряние в кривом API (собственно, это задача и относится к категории API). Натривиальным является некий способ генерации этих самых треугольников (это лишь для примера). Это очень тонкий момент, часто вызывающий непонимание. В представлении большинства людей "оптимизация" — это ковыряние на уровне машинных кодов и/или написание длинного и неряшливого спагети-кода. Это тоже на редкость тоскливое занятие. Повторю еще раз — интересной (для меня!) является прежде всего работа над алгоритмической частью, когда, например, требуется приблизить O(N log N) к O(N). Вам знакомо понятие О-нотации? Это чем-то напоминает процесс доказательства математических теорем. И язык как таковой здесь не имеет большого значения.

+1

MS>Есть подозрение, что то, что Вы, уважаемый Дарней понимаете под "сложными задачами" — это на самом деле строительство вширь, когда конструкции могут стоять только на земле, а при попытке что-то соорудить из них ввысь, получается нелепое и неустойчивое нагромождение.

Кому как. Каждый смотрит со своей колокольни. У каждого свои понятия сложности. Мне интересен процесс построения объемных задач. Если говорить об аналогии со строительством(что-то это для всех стало популярной аналогией), это строить дом из булыжников. Нужно построить его так, чтобы он крепко стоял. А булыжники все разные. И нужно подобрать именно нужный булыжник с нужной геометрией. Иногда подработать напильником. Один неверный булыжник всех ситизенов похоронит. Мне сейчас такое интересно. А булыжников много. Это непростая задача.

С уважением. Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 15:47
Оценка: -1
Приведу сравнение возможно спорное но очень яркое.


1. Годами из мрамора вытачивать произведение искусства.
2. Годами и ТОННАМИ оттачивать мрамогрые глыбы для строительства .

Конечно глыбы точить можно творчески , улучшая производительность и т.д. но глыбы все равно остануться глыбами ...
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: попробую еще раз объяснить
От: Геннадий Майко США  
Дата: 18.11.05 16:08
Оценка: +1
Здравствуйте, Pavel Dvorkin,

PD>1. Если предельная эффективнсть не требуется — значит, железо сейчас избыточно. Если бы железо было намного слабее — писали бы то же, но эффективно, выжимали бы из железа все, чтот можно. Дороже. Хуже. Но делали бы.

PD>2. Эта избыточность ресурсов — что означает ?
--
Производя "железо", очень трудно предвидеть заранее, какие именно программы и в каком количестве на нем будут использоваться. В такой ситуации наиболее выигрышной генеральной стратегией с точки зрения производителя было бы выпускать наиболее производительное железо, которое позволяло бы охватить наибольший класс задач.
Другими словами, избыточность железа, скорее всего, связана не с тем, что нет задач, способных это железо загрузить, а с тем, что не известно заранее, какие и сколько задач на этом железе будут работать.
Если же это известно, то выбор железа можно произвести оптимально, исходя из потребностей этой задачи, обеспечивая ее оптимальную загрузку.

PD>3. Что будет, если этот рост прекратится ?

PD> a) произойдет возврат к борьбе за эффективность, так как потребности общества все же будут расти, а ресурсы расти не будут или будут расти медленнее потребностей
--
Это, скорее всего, так.
Однако даже если производительности железа будет ограничена свойствами "физического мира", есть сравнительно простой способ повышения производительность — использовать несколько "ограниченных" устройств параллельно, одновременно.

С уважением,
Геннадий Майко.
Re[9]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 17:26
Оценка: +1
Здравствуйте, Дарней, Вы писали:

MS>>По моему глубокому убеждению, вопрос материальной состоятельности других людей не должен Вас беспокоить. Вообще не должен.


Д>А меня и не беспокоит. Мне просто интересно — почему это мозг вселенского масштаба, достигший глубочайшего просветления в области программирования, и вдруг работает на дядю — вместо того, чтобы рулить своей корпорацией?


А почему Энштейн не был самым богатым человеком в мире (в свое время)?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 20:58
Оценка: +1
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, eao197, Вы писали:


E>>А почему Энштейн не был самым богатым человеком в мире (в свое время)?


Д>мы говорим не про абстрактные теории, из которых нельзя извлечь непосредственную пользу. Мы говорим о программировании, то есть — производстве некоторой продукции, которая стоит денег.


У нас ОЧЕНЬ разный взгляд на то , что такое программирование ...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 20:58
Оценка: +1
Здравствуйте, mrozov, Вы писали:

M>"Не понимаю" это очень правильно сказано. Именно — не понимаешь.


M>Очень глупо думать, что использующие низкоуровневые языки и функции программисты — гуру, а мастера верстки dhtml-ных страниц — ламеры. На самом-то деле, все может быть с точность до наоборот.


Я допускаю такую гипотетическую возможность , но к сожалению ни разу не встречал такого в жизни.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 20:58
Оценка: -1
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, minorlogic, Вы писали:


M>>Приведу сравнение возможно спорное но очень яркое.

GZ>А теперь начинаем объяснять нам глупым, что здесь имелось ввиду.

GZ>С уважением, Gleb.


А вот и не буду , уж очень это очевидно. А если не понял , ну и не стОит ...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.05 01:42
Оценка: +1
Здравствуйте, Дарней, Вы писали:

Д>А меня и не беспокоит. Мне просто интересно — почему это мозг вселенского масштаба, достигший глубочайшего просветления в области программирования, и вдруг работает на дядю — вместо того, чтобы рулить своей корпорацией?


Если это намек на меня, то во-первых, у меня нет богатого папы для раскрутки, во-вторых, мне не интересно заниматься агрессиивным и беспардонным маркетингом. И у меня нет цели рулить корпорацией — для меня это тоже рутина, несмотря ни на какие деньги.

Приведу цитату.
        Черная сумка, набитая пачками  стодолларовых  купюр,  уже
     стала важнейшим культурным символом и центральным  элементом
     большинства фильмов и книг, а траектория ее движения  сквозь
     жизнь - главным сюжетообразующим  мотивом.  Точнее  сказать,
     именно присутствие в  произведении  искусства  этой  большой
     черной сумки генерирует эмоциональный  интерес  аудитории  к
     происходящему  на  экране  или  в  тексте.  Отметим,  что  в
     некоторых случаях сумка с деньгами не присутствует прямо;  в
     этом случае ее функцию выполняет либо участие так называемых
     "звезд", про которых доподлинно известно, что она есть у них
     дома, либо навязчивая информация  о  бюджете  фильма  и  его
     кассовых  сборах.  А  в  будущем  ни   одного   произведения
     искусства не будет создаваться  просто  так;  не  за  горами
     появление книг и фильмов, главным содержанием которых  будет
     скрытое воспевание "Кока-колы" и нападки на  "Пепси-колу"  -
     или наоборот.


Есть сильное подозрение, что большинство людей, которые искренне любят решения Microsoft, привлекают не технические решения, а объемы денег этой фирмы. Достаточно слов "миллиарды долларов" и все — можно брать тепленьким, схавает любую баланду и готов горбатиться нещадно. На это и делается весь расчет.

        Организованные  по  принципу  корпоративной  струны  люди
     напоминают нанизанных на веревку рыб. Но в нашем случае  эти
     рыбы еще  живы.  Мало  того  -  под  действием  орального  и
     анального вау-факторов они как бы  ползут  по  корпоративной
     струне в направлении, которое кажется им верхом. Делать  это
     их заставляет инстинкт или, если угодно, стремление к смыслу
     жизни. А смысл жизни с точки зрения экономической метафизики
     - трансформация оральной identity в анальную.


Д>Части — тривиальны, построение же из них целого — чрезвычайно сложная задача.


Это тоже в конечном итоге не сложность, а тот же объем. У нас разные понятия о сложности.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 19.11.05 12:38
Оценка: -1
Здравствуйте, GlebZ, Вы писали:

GZ>Ну чтож, давай поговорим что очевидно из твоего сообщения. Ты прямо намекаешь, что ты один такой крутой в белом, а

все остальные сапожники и в ....

В общем я не про себя говорил. Но ЛИЧНО я страемлюсь заниматься интерессными для МЕНЯ задачами. Я не горжусь занимаясь рутиной , для меня это не ценность.

GZ>Ты говоришь что ты один занимаешься творчеством, а все остальные кирпичи складывают в кучи.


Я не говорил о том чем занимаюсь. Я говорил о ценности работы. Ты лично много знаешь знаменитых каменщиков ? а скульпторов ?
Любой ТРУД уважаем (кроме плохого), но если человек не стремится РАСТИ над собой , а горд тем что слился с серой массой , это не авызовет у меня уважения.


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


Ну это уже твои комплексы , я например вижу завитсь к людям которые не хотят заниматься рутиной , а стремятся заниматься тыорчеством. Зависть эта черная и не полезная.
Поверь мне , люди занимающиеся творческими задачами , многим жертвуют.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[14]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 08:34
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Есть еще и обратная проблема: многие из тех, кто в принципе не смог бы заниматься узкими местами, смотрит на специализированных специалистов свысока и снисходительно.


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

E>Хотя, иногда, после рюмки-другой 10-летней выдержки чайку "Белый Аист", хочется проронить скупую мужскую слезу, порвать рубаху со словами: "Да я!... Да сложный объект...! Да за две миллисекунды...! Да в режиме транзакционности!...".


... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 21.11.05 13:12
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Может измениться. Вот у меня был случай -- в одном месте, которое вызывалось слишком часто, было два обращения к new. В многопоточном приложении, где каждый new -- это очень дорого. Я переписал это место так, что new вызывался только один раз. В результате большой кусок кода заработал в два раза быстрее и перестал быть узким местом. Еще больших результатов можно было бы достичь, конечно, изменением алгоритма (там даже не алгоритм а целая идеология бы поменялась), но затраты на такие изменения алгоритма были бы не соизмеримы с полученным выигрышем, а сложность решения серьезно бы увеличилась.


E>Так что элементарную эффективность на уровне кода так же нельзя сбрасывать со счетов.

Со временем это работает на автомате.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[11]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 13:40
Оценка: +1
Здравствуйте, minorlogic, Вы писали:

E>>Так что элементарную эффективность на уровне кода так же нельзя сбрасывать со счетов.

M>Со временем это работает на автомате.

При всем уважении, не могу согласиться. Слишком много факторов сейчас влияют на разработчика, чтобы можно было предугадать, где произойдет потеря производительности.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 21.11.05 13:46
Оценка: -1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, minorlogic, Вы писали:


E>>>Так что элементарную эффективность на уровне кода так же нельзя сбрасывать со счетов.

M>>Со временем это работает на автомате.

E>При всем уважении, не могу согласиться. Слишком много факторов сейчас влияют на разработчика, чтобы можно было предугадать, где произойдет потеря производительности.


Могу ответить прямо если бы я так думал , то был бы уже давно уволен.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 15:32
Оценка: :)
Здравствуйте, GlebZ, Вы писали:

GZ>Индус — гений. Такое придумать жутко умная голова нужна.


Между прочим, пример вполне реальный, примерно пятилетней давности. И это был именно индус, очень коричневого цвета морды лица.

MS>>Знаешь, какова сложность данного цикла? O(N^3).

GZ>Учитывая особенности функции strcpy — меньше. Правда картины не меняет. Но все равно круто.

Кто познал сущность О-нотации, тот истинно крут! Какая такая "особенность strcpy" может убавить O?

Кстати, я был неправ в оценке времени для первого варианта. На 10 миллионах символов, при одной наносекунде на условную операцию это будет работать всего-навсего 31 тысячу лет. Ничтожное время по космическим меркам. Но зато на 100 миллионах уже будет 31 миллиард лет — вполне ощутимое время.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 16:21
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

ПК>>
ПК>>O( N * N * (N/4) ) == O( 1/4 * N^3 ) == O( N^3 )
ПК>>

GZ>Грешен, ляпнул не разобрамшись. Почему делить на 4?

Наверное потому что на современных процах одно слово — это четыре байта. Можно делить на 8, на 1024, на 65536. Это не имеет значения. Сложность все равно остается "эн-куб".
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[12]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 17:46
Оценка: +1
Здравствуйте, McSeem2, Вы писали:

MS>А плюсик можно поствить?

Да на здоровье

MS>Я честно сказать тоже не понимаю О-нотацию. Но осмелюсь утверждать, что понимаю в ней хотя бы что-то. Это действительно сильное колдунство. Например, если в строке не более одного, не более тысячи, не более миллиарда пробелов, то формальная сложность алгоритма остается O(N^2) вне зависимости от фактического количества — ибо есть ограничение в виде некой константы. Но как только мы говорим, что каждый десятый символ — пробел, то сложность цикла сразу становится O(N^3). Можно даже сказать, что каждый миллиардный символ — пробел и все равно это будет N^3. Хотя фактически и практически никакой разницы нет.

У O нотации есть множество подводных камней. Один из которых ты как раз указал. Более классический пример — quicksort и пузырек. По моему ты как-то упоминал что с этим боролся. Полностью и маразматически доверять O нотации нельзя. Иначе мы бы давно сидели бы на хешах. Построить функцию которая будет с очень большой(даже можно сказать космической) вероятностью уникальна для значения(как это делается в криптохешах) в принципе легко. То есть организовать доступ O(1) для любой структуры можно. Но благодаря тому, что такая функция сама по себе достаточно тормозная, а результат функции будет достаточно большой по объему, никому это в голову и не приходит.

MS>Я и не утверждаю, что это плохо. Есть случаи, где такое вполне допустимо. Но!!! Надо четко оговаривать ограничения — типа не более 1000 символов. Или даже — "я написал лажу, вы имеете право ее использовать". Но таких признаний никто не любит — и в этом заключается весь корень зла. Типа одни индусы подразумевают, что "у нас супер-ультра-функция", а другие индусы, не подозревая о неявных ограничениях, используют эту функцию для 5000 символов. Получается полная вешалка.

Фигово когда не проводится нагрузочное тестирование и программа не анализируется через профайлер. В маленьких программах это действительно не особо нужно, так как все алгоритмы перед глазами. А вот в крупных комплексах, будь у тебя семь пядей во лбу, фиг спрогнозируешь что и где будет тормозить. К сожалению такие вещи не всегда возможны, но пытаться на опытных данных попробывать какая получилась производительность, и где находится bottle neck надо. И тогда никакие индусы не страшны.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 22:26
Оценка: +1
Здравствуйте, GlebZ, Вы писали:

GZ>У O нотации есть множество подводных камней. Один из которых ты как раз указал.


На самом деле, надо понимать две веши. Первая, что O(N^3) на 100 миллионах не закончится никогда, вторая — при каких N алгоритм O(N^3) начинает работать медленнее, чем O(N). Эти вещи должны впитываться с молоком матери... Ой, пардон. Конечно же я хотел сказать "с портвейном студенчества"...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[10]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 00:48
Оценка: +1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Нет, Глеб. Это нормальный код, который напишет любой начинающий программист. Он уже понял, как писать программы и работать со строками. И если забыть про эффективность — в этом коде ничего плохого нет. Он, кстати, понятнее и логичнее.


Павел, если ты учишь студентов, то наилучшим объяснением О-нотации будет попросить их представить, как эта "байда" будет работать при ста миллиардах чего-то там на входе. Ну или когда студент приносит сомнительный код не зачет, попросить его сделать оценку времени выполнения для 100 миллиардов. У меня есть сильное опасение, что 90% так называемых "программистов" вообще не имеют предствления, что такое О-нотация. А уж НП-полность (Nondeterministic Polynomial Completeness) — это и для меня загадка, примерно как квантовая механика. И чем дальше копаешь, тем запутанней все это становится.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[14]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 22.11.05 06:16
Оценка: :)
Здравствуйте, c-smile, Вы писали:
CS>Угу. я второй месяц пытаюсь найти автора придумавшего вот это:
Самое забавное, имхо, — в том, что эти грабли уже давно обнаружены и документированы. Я еще в 1991 году где-то читал насчет того, что большинство инциатив комитетов пошли в девнулл, а то, что налабали на коленке практики имеет тенденцию жить.

У меня перед глазами ODMG OQL, где столь же небрежным росчерком пера запретили практически любые оптимизации — до сих пор нет полной реализации. И, скорее всего, никогда не будет.
Вот теперь вы, два опытных человека, рассказываете про то, какие благоглупости выходят из недр W3C. И ведь все из благих побуждений! Ну разве не здорово иметь возможность воткнуть в документ какой-нибудь <hr id="oops">, и всё что после него, станет, к примеру, синим?
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[16]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 22.11.05 09:37
Оценка: :)
Здравствуйте, eao197, Вы писали:

E>Тогда тебе могут быть интересны: Re: Совет "опытного камикадзе" если хошь
Автор: c-smile
Дата: 26.10.05
, Re[2]: Советы 5), 6) и 7)
Автор: c-smile
Дата: 26.10.05
и Re: Велосипеды и эффективность решений
Автор: eao197
Дата: 26.10.05
.


полностью согласен.
Даже пофлеймить не о чем
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: mrozov  
Дата: 22.11.05 11:17
Оценка: +1
Здравствуйте, vdimas, Вы писали:

V>Разница во взаимозаменяемости. Первые легко могут заменить вторых. Наоборот — никак.

Да вот ничего подобного. Ничего общего со взаимозаменяемостью нет. Разные специализации абсолютно, разные навыки.

V>Первых — днем с огнем сейчас ищи, вторых — как саранчи,

В соответствии со спросом, в общем-то.

V>и т.д.

Что и т.д.? Пока не впечатляет.
Re: Ха! Мы забыли про Mobile девайсы
От: c-smile Канада http://terrainformatica.com
Дата: 24.11.05 01:31
Оценка: :)
Здравствуйте, Pavel Dvorkin, Вы писали:

Вот только что знакомые закончили тесты:

Они портируют приложение с PalmOS.
Одному их прожект менеджеру пришла светлая идея
а не написать ли нам это на Compact Framework...

Device used in Feasibility Study: DELL Axim X51v, 624 MHz, 64 MB RAM, 256 MB ROM, Intel PXH270 (typical high end device).

DB: MS SQL Mobile Edition

Insert 6000 records into DB:
1729 sec = 29 min
(Device became irresponsive even to power button until the end of insert operation )

Additional comment on power consumption:
Insertion of 6000 contacts into database consumed 24% of the battery.


К слову сказать оригинальное приложение на полу-придушенном PalmOS девайсе
приемлемо работает с 16 тыс. записями.

А вы говорите....
Re[21]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 26.11.05 19:42
Оценка: +1
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, vdimas, Вы писали:


Д>>>я не выкладывал на свой сайт детальной информации о проекте, поэтому смотреть там не на что.

Д>>>да и выкладывать сейчас нечего — куча бессистемных заметок, да непригодный пока к применению генератор парсеров
Д>>>надо будет собраться да написать подробное описание планов на данный момент, когда руки дойдут

V>>если на дотнете — пиши в приват, с лексерами помогу


E>Что-то модно это сейчас стало, DSL-ями заниматься И Фаулер туда же: http://martinfowler.com/articles.html#id2251334


V>>в общем, есть потребность в разработке своих DSL, но нужен инструмент, которым легко ворочать


E>Ruby (Re[2]: Metaprogramming et al: Ruby?
Автор: eao197
Дата: 18.10.05
, [Ruby,C++] RuCodeGen -- простой фреймворк для кодогенерации
Автор: eao197
Дата: 16.11.05
),

E>Smalltalk (Re[3]: Metaprogramming et al: Ruby?
Автор: Andrei N.Sobchuck
Дата: 18.10.05
),

E>Lisp (Metaprogramming et al
Автор:
Дата: 09.07.05
, Lisp
Автор: fionbio
Дата: 12.07.05
)

E>?

С лисп и смолтолк знаком слегда, но это все не то. Rubby тоже выглядит немного "специальным" языком. Хочется иметь нечто вроде C#, но добавлять операторы языка или нечто вроде глобальных ф-ий (которые таковыми являться не будут).

С другой стороны иметь возможность некоторые конструкции убирать. Т.е. иметь возможность разработать прикладной язык, где нельзя шагнуть вправо/влево. Например, на определенном прикладном уровне вообще вычленить из языка константу null, чтобы не иметь возможности ее создавать/обрабатывать
Re[19]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 26.11.05 19:45
Оценка: +1
Здравствуйте, Дарней, Вы писали:

Д>в общем, пора завязывать с "низким" и "высоким" уровнем. Очень уж эти понятия зависят от выбора точки отсчета


Я говорил о стремлении одних понимать суть вещей, которыми они оперируют, в отличие от тех, кто удовлетворяется внешними API. Это стремление не зависит от точки отсчета.
Re[3]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 11:02
Оценка:
Здравствуйте, eao197, Вы писали:

E>Зря не сомневаешься. Я сейчас пишу многопоточные приложения на C++ без особых проблем. Просто потому, что всей бодягой, связанной с многопоточностью специальный фреймворк занимается.


Я бы не хотел, чтобы дискуссия, если она развернется, вылилась в очередное выяснение .Net против классики, C++ против C# и т.д. Я хотел бы другое обсудить — соответствие ресурсов и задач.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 11:22
Оценка:
Здравствуйте, mrozov, Вы писали:

M> — Да, но .net медленный.


Стоп-стоп. Об этом я речи не вел вовсе. Просто ты сказал, что когда наступит эра многопоточных приложений, то на C++ их делать не будут. Вообще-то эра многопоточных приложений наступила давно. С момента появления многопоточности в OS/2 и Windows NT (массово), и где-то в это же время (POSIX 1003.1c-1995 (Threads extension)) в Unix-ах стала появляться. Так что многопоточные приложения на C++ давно существуют и будут продолжать существовать. Более широкое распространение многопроцессорных платформ здесь ничего не изменит.

M>Боюсь, что для большинства задач все-таки нужна многопоточность. И потом — в .net есть замечательная возможность запускать несколько доменов в одном процессе =)


А если один домен зависнет?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 17.11.05 11:23
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>

СГ>Например, работая на P2-200MHz и на P4-2GHz, не замечаешь особой разницы.
СГ>Почему недостаток? Ну как же, а за что деньги плочены?

Ставили как-то на пентюх Windows 2.0. Была такая. Скорость от XP или 286 — осталась.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Об эффективности - с другой стороны
От: mrozov  
Дата: 17.11.05 11:29
Оценка:
Здравствуйте, eao197, Вы писали:

E>Вообще-то эра многопоточных приложений наступила давно.

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

E>Так что многопоточные приложения на C++ давно существуют и будут продолжать существовать

Также, как и однопоточные.

E>А если один домен зависнет?

Честно говоря — не знаю. Зависнет — значит зависнет. Остальных это затронуть не должно. По идее.
Встречный вопрос — а если зависнет один из процессов?

Но! Это уже точно не по теме.
Re[6]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 11:53
Оценка:
Здравствуйте, mrozov, Вы писали:

E>>Вообще-то эра многопоточных приложений наступила давно.

M>Да не сказал бы. Даже серверные приложения зачастую не очень-то и масштабируемы, а мастшабируемых клиентских так и вообще еще почти нет.

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

Есть такой протокол, Short Message Peer-to-Peer (SMPP), для обеспечения обмена SMS-ами с SMS-центрами мобильных операторов. SMPP -- это компактный двоичный протокол, который подразумевает обмен пакетами (PDU) по одному TCP/IP каналу. Следовательно, пропускная способность SMPP-узла ограничивается либо пропускной способностью канала, либо возможностью софта по обработке данных. Ну вот представь себе, что через SMPP канал начнет идти 1000 транзакций в секунду. Это означает, что обработка одной транзакции должна занимать меньше миллисекунды, а это уже не слабый real-time. Но фишка в том, что балансировку здесь сделать сложно -- вся 1000 транзакций пойдет через один канал и придет в одну точку. Даже если эта точка будет load-balancer-ом, то еще нужно еще специальным образом реализовать, т.к. в SMPP есть свои заморочки с организацией сессий и пр. И представь себе софт, который разрабатывался в расчете на трафик в 10-20 транзакций, но на него стали сваливаться объемы в 100 раз большие (бизнес удачно пошел). Как его смаштабировать?

Сейчас кроме SMPP еще появился MMAP -- аналог SMPP, но на основе SOAP. Каждая отдельная транзакция в XML-е занимает гораздо больше места, чем в SMPP. Да еще HTTP в качестве транспорта. Жуть, как может показаться. А на самом деле, распараллеливание здесь делается ну просто на порядки проще. Хотя бы за счет того, что HTTP-load-balancer-ов навалом. И все, что нужно сделать -- это CGI (попросту говоря), который будет заниматься обработкой отдельных транзакций. А дальше -- ставь кластер из 10 машин, ставь туда web-сервер и распределяй по 100 транзакций на каждую машину. Особых проблем не видно.

А ведь все из-за чего -- из-за другого протокола.

M> И когда все поголовно сюда ломанутся, понадобятся совсем другие инструменты.


+1
Поскольку ручное управление потоками и их синхронизация удовольствие малоприятное, то да, для массового потребления придется создать простой, подходящий для 80% случаев инструмент. Но это совсем не значит, что те, кто сейчас разрабатывают многопоточные приложения, не пользуются соответствующими инструментами. Пользуются. Еще как пользуемся Вот только есть очень большое подозрение, что это не для массового потребления инструменты.

E>>Так что многопоточные приложения на C++ давно существуют и будут продолжать существовать

M>Также, как и однопоточные.

E>>А если один домен зависнет?

M>Честно говоря — не знаю. Зависнет — значит зависнет. Остальных это затронуть не должно. По идее.

Угу. Именно, что по идее.

M>Встречный вопрос — а если зависнет один из процессов?


Он просто прибивается. Скажем через kill -9 Остальные продолжают работать. Unix-овые системы уже лет двадцать так работают.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[8]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 12:14
Оценка:
Здравствуйте, mrozov, Вы писали:

M>

M>Евгений! А ты в курсе, что мы с тобой знакомы? Заочно?



Максим!
Как тесен мир!
Оказывается, нам нужно было раньше на "ты" переходить А я то думаю, что за ник знакомый
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 13:04
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Я бы не хотел, чтобы дискуссия, если она развернется, вылилась в очередное выяснение .Net против классики, C++ против C# и т.д. Я хотел бы другое обсудить — соответствие ресурсов и задач.


E>Тогда ответь мне на такой вопрос: для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?


Стоп-стоп. Где ее взять — вестимо, на свалке, может быть . И я восе не призываю ее там искать. Мой вопрос не в этом. Вопрос — как соотносятся задачи и ресурсы. Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?
With best regards
Pavel Dvorkin
Re[3]: Об эффективности - с другой стороны
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.11.05 13:16
Оценка:
Здравствуйте, eao197, Вы писали:

E>Зря не сомневаешься. Я сейчас пишу многопоточные приложения на C++ без особых проблем. Просто потому, что всей бодягой, связанной с многопоточностью специальный фреймворк занимается.


Твой фрэймворк максиму что может сделать — это немного упростить вызовы имеющегося АПИ ОС. Этого явно не достаточно чтобы сделать создание эффективных многопоточных приложений настолько простым, чтобы массы программистов не относящихся к гуру могли быстро создавать масштабируемые приложения.

Думаю, когда mrozov говорил о многопоточном будущем, то имел в виду нечто большее чем просто фрэймворки. Речь скорее всего шла о некоторых механизма автоматизации процесса распараллеливания и существенном снижении сложности создания высокопаралельных программ.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 13:17
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Мой ответ — Pentium-100 32 Mb. Ну в крайнем случае раза в 2 лучше

GZ>Мало иметь 100Мб информации, нужно еще ею эффективно управлять. Это уже СУБД. А теперь представим какой объем должен кэшироваться в памяти чтобы диск не стал узким и жестко ограничивающим средством. Мы можем задумываться больше о той полезной функциональности которую мы можем реализовать. Лет 10 назад, это стоило бы значительно дороже.

Дороже — бесспорно. Но, положа руку на сердце — для этого действительно надо 3Ghz — 512 Мб ? СУБД — да, только сколько информации в этой СУБД будет для этой фирмы ? Десятки Мб, максимум. А насчет управлять — зайди на сайт небольшой компьютерной фирмы, турфирмы и т.д.- много там этого управления ?

PD>>Доказательство — 10 лет назад такие сайты были, если не у нас, то в США, и работали они на такой технике. И оперировали они тем же объемом информации, просто потому, что никакой принципиально новой информации у фирмы, торгующей ,к примеру, компьютерами, просто не появилось. Изменился ассортимент, вот и все.

GZ>20 лет назад, если бы у нас была задача организовать сайт с такой-же нагрузкой как у RSDN — то нам бы пришлось купить компьютер размером с хорошую комнату и такой производительности, что вся бы страна гордилась. А чтобы написать аналогичный софт, нужно было-бы потратить огромнейшую кучу времени, нанять огромнейшее количество программистов, и заплатить несколько миллионов.

Э нет, не о том речь. Ты бы еще про rambler.ru или microsoft.com сказал. С ними — согласен. А вот в рамках той задачи, о которой я писал ? На rsdn уж никак не 100 сессий в день...

PD>>А кстати, какой клиент это все потянет ? Netscape 3.0 на 16 Мб под Windows 95 потянет ? Тянул же он раньше...

GZ>Было уже такое. Вся нагрузка на сервер, рабочая станция — один монитор, да связь с сервером. Но количество задач решаемый сейчас пользователем значительно больше.

Я же не спорю. Для круга задач — да. А вот для большого круга задач же — нет.

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


А какой процент таких "других" задач ? Если вспомнить то, с чего я начал (цитата из постинга), то "И не только у меня, а у подавляющего большинства здесь присутствующих," Это не мои слова.


PD>>А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.

GZ>Усложнились не задачи которые решаются торговой фирмой. Усложнились задачи выполняемые с помощью компьютера. И именно благодаря развитию железа и софта.

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


PD>>2. Рост мощностей замедлится. В этом случае для тех задач, для которых и ныненшняя мощность избыточна, все останется как сейчас. Но понемногу будут подтягиваться задачи, которые пока что или вообще не решаются (может быть, даже само их существование пока не осознано, так что их и не ставят), или же решаются с трудом, так как имеющиеся способы их решения вынуждены были ориентироваться на имеющиеся мощности (игры — классический пример). Доля этих задач будет возрастать, что приведет к возврату требований по эффективности написания кода.

GZ>Это сказка. Пути назад уже нет.

Кто знает...

GZ>Вообще ты все время упускаешь следующую вещь. То что сейчас делает один программист, раньше стоило несколько миллионов зеленых. Мы вкатились в систему компонентов и библиотек. Я уже не должен отслеживать обратный ход луча на мониторе. Мы теперь используем более функциональные компоненты как кирпичи. И основное торможение в программах дают именно эти компоненты. Они многое могут, они сильно нам помогают, но именно они и являются тормозом производительности. Но развитие железа опережает развитие компонентов. Поэтому мы можем меньше думать о них, и больше думать о том, что мы хотим сделать. Кто может сказать что лет 15 назад он в одиночку написал бы сервер приложений?


Все это очень хорошо. Но ты тоже не хочешь принять один момент. А именно, если задача будет такова, что для нее ресурсов не хватит, то все эти рассуждения стоить будут немного. Делать надо, а как — неважно, если одно не позволяет — другое будет.

GZ>Вобщем, перевод требований по эффективности кода это процесс не искуственный, это процесс эволюционный.


+1
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 13:39
Оценка:
Здравствуйте, Nickolay Ch, Вы писали:

NC>То, что на сервере может крутиться несколько сайтов(частое явление), или же это вообще может быть выделенный виртуальный сервер, каких несколько на одном физическом, Вы конечно не учли почемуто.


Почему не учел. И такое возможно, и, наоборот, сервер, который в действительности на десятках машин расположен (интересно, сколько их у МС на msdn.microsoft.com ?) тоже возможно. Я про частный случай говорил — есть организация, у нее сервер, второй ей не нужен.

NC>На настольной машине одновременно работают 3,5,7 — 10 максимум пользовтаельских приложений. А "активно"(т.е. жрут память и проц) 1-2. Не верим — давайте считать(приведу свой пример, буду рад если то же напишут другие о себе):


<skipped>

Ну примерно то же самое, список несколько иной. Да, 5-10

IExplore 31 Мб
svchost 21
expolrer 18
skype 18
devenv 18

остальные порядка 10 и менее. Всего сейчас commit charge 282 Мв. Правда, VS я специально сейчас запустил, так что при активной работе будет побольше.



NC>Более того, смею утверждать, что больщинство пользовательских пк имеют то же распределение загрузки:

NC>1 активное(рабочее приложение, это может быть редактор игра и т.п.) + Музыка(возможно) + 2-5 приложений в фоне. И где же ваша драка за ресурсы???

Таки есть. Не у меня, у меня 768 Мб. А вот при том же наборе программ и 256 Мб уже напряг будет. Даже если исключить VS — она там ни к чему.

NC>Вообще хочу Вам задать вопрос: из чего появляется задача минимизации мощности обордудования для заданного программного продукта.


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

Вопрос — как соотносятся задачи и ресурсы. Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 13:49
Оценка:
Здравствуйте, Glоbus, Вы писали:

G>Здравствуйте, Pavel Dvorkin, Вы писали:


<skipped>

Мысль любопытная, но согласиться не могу. Они же этот софт обратно себе получат, не кому-нибудь. Это же не паленый кофе, который можно в дикую страну заслать, там все сожрут, а мы будем у себя хороший кофе попивать... Что-то здесь не то.
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.11.05 13:49
Оценка:
Здравствуйте, ghecko, Вы писали:

G> Скорее всего популярность ASP.NET обясняется тем, что это очень удобная технология разработки для WEB, во всяком случае удобнее ASP. Ну и еще тем, что, по сути ничего другого под Win просто нет


Вообще-то Апач и почти любые другие разработки (например JSP) доступны под Виндовс.

Что до ASP, то это вообще интерпретация и как ее можно сравнивать по скорости с дотнетом я не понимаю. А ведь реальный выбор при веб-разработке как раз и стоит между интерпретаторами и управляемыми средами (Ява и дотнет). Сайт на С++ — это большая редкость и создание оного для нужд отдельной компании идея граничащая с бредом (разве что для разных гуглей с альтавистами она еще хоть как-то поравдана... пока).
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 17.11.05 13:54
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Дороже — бесспорно. Но, положа руку на сердце — для этого действительно надо 3Ghz — 512 Мб ? СУБД — да, только сколько информации в этой СУБД будет для этой фирмы ? Десятки Мб, максимум. А насчет управлять — зайди на сайт небольшой компьютерной фирмы, турфирмы и т.д.- много там этого управления ?

По разному. Одни вкладывают деньги в свое. Другие раскладывают html на бесплатные сайты(в которых уже другие компы). Деньгу все считают. Но internet web-сайты на обычном десктопе — это извращение. Хотя бы по требованиям к надежности.

PD>Э нет, не о том речь. Ты бы еще про rambler.ru или microsoft.com сказал. С ними — согласен. А вот в рамках той задачи, о которой я писал ? На rsdn уж никак не 100 сессий в день...

У меня есть сайты которые иногда поисковые сервера посещают чаще чем пользователи. Есть сайты у которых 3 тысячи пользователей. Engine один и тот же. Так вот, те которые посещаются значительно меньше предпочли это решение потому что оно дешевле чем построение с нуля. Повторю ключевое слово — дешевле.
Так и все остальное. Пользователи (и мы программисты также пользователи) предпочитают готовые решения или компоненты, чем построение специализированных. Потому что так дешевле.

PD>>>А кстати, какой клиент это все потянет ? Netscape 3.0 на 16 Мб под Windows 95 потянет ? Тянул же он раньше...

GZ>>Было уже такое. Вся нагрузка на сервер, рабочая станция — один монитор, да связь с сервером. Но количество задач решаемый сейчас пользователем значительно больше.
PD>Я же не спорю. Для круга задач — да. А вот для большого круга задач же — нет.
GZ>>Это компьютер адаптированный для выполнения конкретно-поставленной задачи. Это вполне нормально и никакого противоречия я не вижу. Он не такой же как обычный, он другой. Для него требования другие.
PD>А какой процент таких "других" задач ? Если вспомнить то, с чего я начал (цитата из постинга), то "И не только у меня, а у подавляющего большинства здесь присутствующих," Это не мои слова.
тут не понял.

GZ>>Усложнились не задачи которые решаются торговой фирмой. Усложнились задачи выполняемые с помощью компьютера. И именно благодаря развитию железа и софта.

PD>С помощью компьютера можно самые разные задачи решать, не об этом речь. А вот все же как с задачей организации сайта для вышеупомянутой фирмы ?
Уже ответил.

PD>Все это очень хорошо. Но ты тоже не хочешь принять один момент. А именно, если задача будет такова, что для нее ресурсов не хватит, то все эти рассуждения стоить будут немного. Делать надо, а как — неважно, если одно не позволяет — другое будет.

Никто и не говорил что нужно писать плохо. Адаптацию под комп пользователя(или предполагаемого пользователя) никто не отменял. Просто изменение приоритетов в изменившихся условиях.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Об эффективности - с другой стороны
От: Glоbus Украина  
Дата: 17.11.05 14:12
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Glоbus, Вы писали:


G>>Здравствуйте, Pavel Dvorkin, Вы писали:


PD><skipped>


PD>Мысль любопытная, но согласиться не могу. Они же этот софт обратно себе получат, не кому-нибудь. Это же не паленый кофе, который можно в дикую страну заслать, там все сожрут, а мы будем у себя хороший кофе попивать... Что-то здесь не то.



Значит они считают, что за такие деньги это преемлемое качество. Ну не нужен им на сайте интернет-магазина мегаэффективный поиск по списку товаров с указанием хитрых кретериев — пользователь подождет вместо одной пять секунд, браузер повтыкает ,в результате все спишут на то что вот мол тормозно сетка работает.
Удачи тебе, браток!
Re[4]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 14:17
Оценка:
Здравствуйте, Glоbus, Вы писали:

G>Значит они считают, что за такие деньги это преемлемое качество. Ну не нужен им на сайте интернет-магазина мегаэффективный поиск по списку товаров с указанием хитрых кретериев — пользователь подождет вместо одной пять секунд, браузер повтыкает ,в результате все спишут на то что вот мол тормозно сетка работает.


Спишут-то спишут, но следующий раз клиент к конкуренту пойдет. У которого сайт лучше.

Вот пример, личный. Искал себе турпоездку. Нашел в Рамблере n ссылок, потом по ним пошел. Если где-то не открывалось или там я не мог быстро получить, что меня интересует — закрывал окно без всяких разговоров. Турфирм море...
With best regards
Pavel Dvorkin
Re[3]: Об эффективности - с другой стороны
От: ghecko Россия  
Дата: 17.11.05 14:20
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вообще-то Апач и почти любые другие разработки (например JSP) доступны под Виндовс.


Доступны. Но смысл применения Apache под Win от меня ускользает. Java?. Ее приемущества перед .NET
опять же мне кажутся сомнительными
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re[4]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 17.11.05 14:23
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>По разному. Одни вкладывают деньги в свое. Другие раскладывают html на бесплатные сайты(в которых уже другие компы). Деньгу все считают. Но internet web-сайты на обычном десктопе — это извращение. Хотя бы по требованиям к надежности.


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

GZ>У меня есть сайты которые иногда поисковые сервера посещают чаще чем пользователи. Есть сайты у которых 3 тысячи пользователей. Engine один и тот же. Так вот, те которые посещаются значительно меньше предпочли это решение потому что оно дешевле чем построение с нуля. Повторю ключевое слово — дешевле.


Глеб, дискуссия не в ту сторону пошла. Я не спрашиваю, почему они не взяли P100 и почему они то решение выбрали, а не иное. Меня интересует другое — соотношение между ресурсами и задачами. Повторю еще раз то, о чем уже писал.

Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?

PD>>А какой процент таких "других" задач ? Если вспомнить то, с чего я начал (цитата из постинга), то "И не только у меня, а у подавляющего большинства здесь присутствующих," Это не мои слова.

GZ>тут не понял.

Я имел в виду, что IT (кажется) отметил, что задач, требующих эффективности, не так уж много. Вот я и хочу понять , что эта ситуация означает. А что дешевле, надежнее и т.д — тема сама по себе интересная, но не об этом сейчас речь.
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: ghecko Россия  
Дата: 17.11.05 14:28
Оценка:
Здравствуйте, Glоbus, Вы писали:

G>Думается мне, все намного проще. То, что у нас тут так жестко рулит и продвигается .нет можно легко объяснить теми задачами, которые решаются. Страны экс-СССР, а также всякие Индии и Китаи, шпарят аутсорсинг, в аутсорсинг даются задачи настолько простые и дешевые, что платить за их решение тамошнему девелоперу положенную ставку просто катастрофически невыгодно — все равно что нанимать профессора убирать улицы с соответсвующими зарплатой, научной пенсией и т.п. На мой взгляд, технологии вроде .нета создаются Мс и другими конторами именно с прицелом на такие "слаборазвитые" страны — идея такова, что "белые хозяева" делают для своих "негров" такой инструмент, чтобы "негры" могли решать рутинные задачи за как можно меншую плату и в кратчайшие сроки. Весь хай-тек с его требованиями к эффективности все равно остается привелегией "белых хозяев" — в экс-совке конторы, занимающиеся более-менее наукоемкой деятельнсотью можно по пальцам пересчитать — и в этих конторах рулят вопросы эффективности и все что с ними связано. Остальная же часть — примерно 95% (думаю примерно так) — лопатат сайт за сайтом и "корпоративные приложения" за "корпоративным приложением", бухучет за бухучетом. ДУмаю не ошибусь, если скажу что подтвержеднием моих слов будет резюме первого, кто его пришлет в вашу контору — с веротяностью 0.95 там будет веб и система бухучета для какого-нить предприятия. А вот строчку наподобие "разработка ПО для систем автопилота ТУ-160" будет найти просто таки нереально. Мы — задворки ИТ, нам перепадают крохи, которые смахивает со своего стола жирный западный дядя, и для работы с этими крохами действительно не нужны глубокие знания в алгоритмизации, архитектуре и тому подобном.


Можно подумать на С/C++ ты будешь писать здесь что-то другое? Спрос порождает предложение, и копать яму камертоном, в то время когда рядом стоит лопата, только потому что тебе хотелось бы настраивать рояли, ИМХО, глупость
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re[4]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 15:46
Оценка:
Здравствуйте, VladD2, Вы писали:

E>>Зря не сомневаешься. Я сейчас пишу многопоточные приложения на C++ без особых проблем. Просто потому, что всей бодягой, связанной с многопоточностью специальный фреймворк занимается.


VD>Твой фрэймворк максиму что может сделать — это немного упростить вызовы имеющегося АПИ ОС.


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

VD> Этого явно не достаточно чтобы сделать создание эффективных многопоточных приложений настолько простым, чтобы массы программистов не относящихся к гуру могли быстро создавать масштабируемые приложения.


Знаешь Влад, мне кажется, что для сложных задач должны быть сложные инструменты. Создание масштабируемых приложений -- это очень не простая тема. К тому же она сильно зависит от предметной области. Создать сайт, способный поддерживать 10000 подключений одновременно -- это одно, создать систему расчета прогноза погоды -- это совсем другое. Хотя и там и там хорошая масштабироемость является залогом успеха.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 15:46
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>>>Я бы не хотел, чтобы дискуссия, если она развернется, вылилась в очередное выяснение .Net против классики, C++ против C# и т.д. Я хотел бы другое обсудить — соответствие ресурсов и задач.


E>>Тогда ответь мне на такой вопрос: для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?


PD>Стоп-стоп. Где ее взять — вестимо, на свалке, может быть . И я восе не призываю ее там искать. Мой вопрос не в этом. Вопрос — как соотносятся задачи и ресурсы. Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?


Отнюдь. Я как-то, пару лет назад, загорелся такой идеей: поскольку некоторые мои программы были очень нетребовательны к ресурсам, то вместо того, чтобы покупать дорогущие сервера (надежность которых все равно может оставлять желать) лучше прикупить пару-тройку промышленных компьютеров со стабенькими процессорами, но зато надежных. Ага! Тогда промышленный компьютер класса p-200 стоил дороже, чем no-name сервер класса p4. Так что умерла моя идея еще на взлете

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

Речь шла о server-side системах.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Об эффективности - с другой стороны
От: Трурль  
Дата: 17.11.05 15:47
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Мой ответ — Pentium-100 32 Mb. Ну в крайнем случае раза в 2 лучше


Хм, раза в 2 лучше.

For example, it ran the gigabyte TPC-D (an industry standard decision support benchmark) queries and updates on a 200MHZ PC with 64 megabytes of memory an ultrawide SCSI controller and four disk drives many times faster than the best published results at a fraction the cost.

Re[4]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 15:59
Оценка:
Здравствуйте, ghecko, Вы писали:

VD>>Вообще-то Апач и почти любые другие разработки (например JSP) доступны под Виндовс.


G> Доступны. Но смысл применения Apache под Win от меня ускользает. Java?. Ее приемущества перед .NET

G>опять же мне кажутся сомнительными

В смысле создания Web-приложений? А почему сомнительными?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: Об эффективности - с другой стороны
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.11.05 16:01
Оценка:
Здравствуйте, ghecko, Вы писали:

G> Доступны. Но смысл применения Apache под Win от меня ускользает. Java?. Ее приемущества перед .NET

G>опять же мне кажутся сомнительными

Тебе сомнително, а другим нет. Все равно утверждать что под виндовс есть только дотнет и асп не верно.
... << RSDN@Home 1.2.0 alpha rev. 618>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 17.11.05 16:17
Оценка:
Здравствуйте, AndrewVK, Вы писали:

E>>Вообще-то эра многопоточных приложений наступила давно.


AVK>Это вряд ли. И не наступит пока многопроцессорные решения не станут на рынке основными. Многопоточное решение практически всегда сложнее, медленнее и глючнее однопоточного на однопроцессорной машине.


Ну не знаю, я сам года с 96-го только многопоточные приложения и пишу
А что до глючности, то на многопроцессорной технике они еще более глючные (имхо, конечно), т.к. там времянка вообще по другому распределяется. И такие фокусы могут быть, что и не знаешь, где копать
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 17.11.05 17:44
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

GZ>>По разному. Одни вкладывают деньги в свое. Другие раскладывают html на бесплатные сайты(в которых уже другие компы). Деньгу все считают. Но internet web-сайты на обычном десктопе — это извращение. Хотя бы по требованиям к надежности.

PD>Требования к надежности везде разные. если сайт чисто информационный, ну еще с отсылкой заказа без онлайн покупок, то требования небольшие. Рухнет — перезагрузим страницу.
Я говорил о железе. Рухнет — новую машинку покупать. Это несколько и дороже и дольше по времени.

PD>Глеб, дискуссия не в ту сторону пошла. Я не спрашиваю, почему они не взяли P100 и почему они то решение выбрали, а не иное. Меня интересует другое — соотношение между ресурсами и задачами. Повторю еще раз то, о чем уже писал.

Сколько не поставят — все адаптируем. Нужно просто ясно представлять какие требования к компам пользователей.
Не с адаптируем, значит не с адаптируем. На компах пользователей выполняется огромное количество программ. Кому-то еще оно понадобится.

PD>Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?

PD>Я имел в виду, что IT (кажется) отметил, что задач, требующих эффективности, не так уж много. Вот я и хочу понять , что эта ситуация означает. А что дешевле, надежнее и т.д — тема сама по себе интересная, но не об этом сейчас речь.
Я бы тут его поправил. Задач требуеющих эффективности от конкретного программиста. Потому как наиболее эффективные компоненты уже написаны.
Возьмем к примеру Clipper. Была такая база по DOS. Она абсолютно вписывалась в те требования к памяти и производительности. Но это была навигационная база. Создание универсального механизма(хотя они были) было достаточно проблематично. В результате программисту приходилось думать не о функциональности, а о решении задач эффективности базы данных. А это намного более сложные задачи. Сейчас это даже на фоне Ассеss'a выглядит смешно. Он и может содержать значительно больше данных, он и умнее общается с программистом. Он сама решает задачи эффективности базы данных. Но если поставить вопрос, можно ли сделать вместо Accessa альтернативу специализированную под конкретную программу? Да можно. И она может быть быстрее, и меньше памяти жрать, и значительно эффективней кэшировать. Только для этого нужно очень много знать. А так у нас используется процентов 30 от тех механизмов которые там есть, остальные висят мертвым грузом. Можно поставить MSSQL, который еще эффективней. Но тогда ты будешь использовать процентов 10 от того что там есть. А может еще меньше. Можно поставить и Oracle. Тогда процент еще существенно уменьшится. Если говорить о Windows — то это одна большая помойка неиспользуемой функциональности. Но главный вопрос уже не в том, что мы не полностью используем их средства а они занимают ресурсы, главный вопрос в том, что нам полезней те высокоэффективные механизмы которые там есть чем их недостатки.
В той же степени можно сказать и о GC. Ну жрет память. Но он дает эффективность выраженную в пониженной вероятности встретить ошибку. Он эффективно выполняет работу за программиста. Конечно абсолютной универсальности нет. Можно сделать и более эффективный специализированный инструмент типа того что делается для систем САПР. Но для большинства приложений его плюсы больше чем недостатки от универсальности.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: Об эффективности - с другой стороны
От: Nickolay Ch  
Дата: 17.11.05 18:11
Оценка:
Здравствуйте, Mamut, Вы писали:

NC>>Более того, смею утверждать, что больщинство пользовательских пк имеют то же распределение загрузки:

NC>>1 активное(рабочее приложение, это может быть редактор игра и т.п.) + Музыка(возможно) + 2-5 приложений в фоне. И где же ваша драка за ресурсы??? Видел проблемы только на старых компах(пень 100 192 Mb Ram)

M>Памяти не хватает дико:


M>На фоне (трей): Miranda, Shareaza, SharpReader, Winamp, RSDN@Home, PuntoSwitcher, Avast Antivirus, MSN Messenger, SystemScheduler, Apache, AC sound Manager, Process Explorer.


M>Открытые окна: 2-3 Windows Explorer, Opera (штук десять табов), Mozilla Firefox (штук пять табов).

M>Часто открываемые: Adobe Photoshop, Macromedia Dreamweaver.

M>512 MB на все это добро не хватает никак. Только винда жрет 100. Opera+FireFox+Janus — еще сто (Опера у меня нередко сам доходит до 80 МБ). MSN Messenger — 30 метров (за что? зачем?) В общем, сейчас у меня запито 528 метров (из 512). А если еще Фотошоп с Дримуивером запустить....


M>Вчера под вечер сидел на 800 МБ (из 512 )


M>Но! Есть конечно но. Если работать только с одним/двумя приложениями, то рекция этих приложений более, чем адекватная.


Не вижу где не хватает памяти дико. И еще 512 метров никак бюджет не перенапрягут.
Если уж говорить о профессиональном юзании компа(разработка, у вас я вижу Photoshop, Dreamweaver) то поставить себе 1Гб-1.5 вполне нормально. Я долго работал на 512 Мб, все было ок, правла когда возникла необходимость разрабатывать на виртуалке поставил еще гиг без проблем.
Re[3]: Об эффективности - с другой стороны
От: Nickolay Ch  
Дата: 17.11.05 18:24
Оценка:
PD>Почему не учел. И такое возможно, и, наоборот, сервер, который в действительности на десятках машин расположен (интересно, сколько их у МС на msdn.microsoft.com ?) тоже возможно. Я про частный случай говорил — есть организация, у нее сервер, второй ей не нужен.

Ну раз про частный случай, то тогда и не стоит делать никаких сравнений.



PD>Таки есть. Не у меня, у меня 768 Мб. А вот при том же наборе программ и 256 Мб уже напряг будет. Даже если исключить VS — она там ни к чему.


Вы еще 8 мб вспомните. Для ненапряжной работе в каком нить ворде, просмотра фильма или музыки, общения по асе и серфинга 256 хватает(у родителей дома столько на компе), хотя это вчерашний день. Модуль 512 мб стоит 50$



PD>Вопрос — как соотносятся задачи и ресурсы. Если ресурсов на порядок больше — слава богу. Но что это значит — не будет таких задач в массовом масштабе, которые требовали бы этих ресурсов (т.е. обществу такие задачи в массовом масшатабе не нужны просто) или же рост ресурсов был настолько быстрым, что общество за ним не успело и задачи эти еще не сформулировало ?


Существует куча проблем связанных с разработкой больших сложных программных систем.(Да и не очень больших и сложных). Эти проблемы отлично описаны например у Буча в книге "Объектно Ориентированный Анализ и проектирование". При разработке надо имхо концентрироваться на решении этих проблем, а не думать об аппаратных ресурсах.(естественно в ряде задач это совсем не так). Сейчас ресурсов в основном хватает, они дешевле чем разработка софта. Задачи стоят так, что трудность их именно в разработке, а не в требуемых аппаратных ресурсах.
Re[5]: Об эффективности - с другой стороны
От: ghecko Россия  
Дата: 17.11.05 19:15
Оценка:
Здравствуйте, eao197, Вы писали:


E>В смысле создания Web-приложений? А почему сомнительными?


Птому что можно долго спорить что лучше, что мнгоие и делают. Но я бы взял то, что поддерживается
проиводителем ОС, если явных приемуществ нет. Опять же все это ИМХО.
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re[5]: Об эффективности - с другой стороны
От: ghecko Россия  
Дата: 17.11.05 19:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, ghecko, Вы писали:


G>> Доступны. Но смысл применения Apache под Win от меня ускользает. Java?. Ее приемущества перед .NET

G>>опять же мне кажутся сомнительными

VD>Тебе сомнително, а другим нет. Все равно утверждать что под виндовс есть только дотнет и асп не верно.


Не верно, не спорю. Просто есть средства разработки и ПО, которые, де-факто являются стандартом в определеной среде, как то ASP в Win или Apache+php/java в Unix. А все остальное из области экспериментов. Мне так кажется
Три великие достоинства программиста: лень, нетерпение, надменность... Л. Уолл
Re: Об эффективности - с другой стороны
От: vvotan Россия  
Дата: 17.11.05 22:07
Оценка:
PD>Другой пример. Зашел я полгода назад в налоговую инспекцию. Бросил взгляд на экран компьютера, и сразу стало ясно, на чем их ПО написано — FoxPro для DOS ни с чем ни спутаешь, внешний вид уж больно характерный. Создано это ПО лет 10 назад, и до сих пор благополучно работает.

А знаешь сколько матов извергают сотрудники отделов, которым приходится поддерживать работоспособность или не дай Б-г писать что-то с этими динозаврами совместимое?
Конкретно про налоговую не знаю, но с некоторым таким софтом и я имел дело(правда поверхностно).
Хотя про эффективность я с тобой во многом согласен. Но не во всем
--
Sergey Chadov

... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 17.11.05 22:48
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я имел в виду, что IT (кажется) отметил, что задач, требующих эффективности, не так уж много. Вот я и хочу понять , что эта ситуация означает. А что дешевле, надежнее и т.д — тема сама по себе интересная, но не об этом сейчас речь.


Я такого не мог сказать. Эффективность никогда не помешает. Вопрос лишь в соотношении полезного выхлопа от достигнутого к цене.
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 17.11.05 23:35
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Большинство пользователей не имеют притензий к скорости настольных приложений, написанных на VB. (.net работает быстрее.)


Обе части этого statement вызывают у меня как у практика серьезные причины для недоверия
к тому что написано дальше.

Особенно вторая часть про VB не далее как вчера мною проверялась в присутствии представителей фирмы производителя.
Задача: типовая морда лица на VB и VB.NET. Последний и рядом не стоял на конкретной задаче.

Для серверных задач с другим патерном раходования памяти managed code кое в чем выигрывает.

Внимание: я ничего не говорю про потребительские качества разаработки managed/unmanaged. Вопрос
сугубо о скорости.

Более того мне лично не известно ни одно успешное коммерческое чисто managed приложение которое
конкурирует с тем же Оффисом. Более того сама фирма производитлеь не выпускает такие приложения.

Я лично принимал участие в качестве архитектора системы близкой по составу функций Оффису
topproducer.com/products/TOPPRODUCER7i/Comp_Features.asp (Java и С++)
и могу сказать что без native code (например модуль WordProcessor) это просто не работает.
Re[3]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 18.11.05 01:02
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Ставили как-то на пентюх Windows 2.0. Была такая. Скорость от XP или 286 — осталась.


Windows 2.0 у меня неплохо одно время поработала на 286-й 17MHzб 2 MB ОЗУ
Re[2]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 18.11.05 01:10
Оценка:
Здравствуйте, IT, Вы писали:

IT>Теперь ответь мне на вопрос, что выгоднее — купить новый комьютер или платить тебе за то, чтобы ты попытался выжать последние соки из старого хлама?


PD>>А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.


IT>Зато соотношение стоимость разработки софта к стоимости компьютеров выросла просто неимоверно.


Абсолютно верно для систем класса Бухгалтерия.

Но не забывай о том что вычислительные возможности растут на почве все возврастающих потребностей.
Простой пример: как-то на w3c мы обсуждали проблемы быстродейтсвия броузеров и прочего.
Так вот Борис Збарский (Mozilla) в конце концов признался (и то в частном порядке) что концепция броузера
как thin client (легковесность и быстродействие) никогда в команде не рассматривалась.
Я думаю что все помнят что представляла собой мозила в то время по сравнению с IE.

Еще один пример: cascading style sheets и их computational complexity.

Смотри, для документа с N DOM элементами, M стилями и D — средняя глубина дерерва
задача нахождения стиля для каждого элемента это O( N * M * D ). Могу тебе сказать сразу — без тщательной прорабоки алгоритмов, просто так в лоб эту задачу не решить. Кстати я например использую один трюк который на managed в принципе не реализуем. Но это к слову.

Все дело в том что например 7 лет назад про CSS только говорили хотя стандарту уже как лет 12.
Сейчас используют просто потому что наконец-то появились мощности для этого.
Re[4]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 18.11.05 01:23
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Но по большому счету — речь просто о том, что хотя .net требует под себя доп. мощности, но эти мощности уже есть. А какого-то особого замедления работы managed программ на современном компьютере лично я не замечаю.


C GUI пока проблемы. .Net-ные аппликухи демонстрируют заметные минизадержки при открытии окон с большим кол-вом контролов. Тут 2 причины:

1. Если форма локализована, то как-то неправильно работает сериализация в код. Сериализуются все св-ва, независимо от того — по умолчанию они или нет. Получается ооочень большая простыня автогенеренного кода, и многие сотни обращений к ResourceManager, каждый ресурс достается из Hashmap, но на больших формах его заполнение происходит заметно долго при первой десериализации ресурса. На самом деле, это просто особенность дизайнера форм, что он реально хранит данные только текущей выбранной локализации, и в момент генерации кода не располагает данными обо всех значениях всех локализаций. Но как-то это не додумано концептуально.

2. WindowsForms писалась в расчете на STA, однако они перестраховались, и не придумали ничего лучше, как регистрацию КАЖОГО контрола в мапах (HWND handler <==> Control instance) с синхронизацией. Т.е. создание каждого окна виндов сопровождается синхронизацией. Разрушение — аналогично. В нашей проге, когда закрывается окно с большим кол-вом элементов, иногда мелькает белая непрорисованная область окна под ним (последний раз наблюдал нечто такое на каких-нить P100), поэтому мы делаем хитро: сначала гасим окно, потом один раз вызываем Application.DoEvents(), потом только разрушаем погашенное окно. Буквально соседнее аналогичное по насыщенности контролами приложение, написанное на С++, визуально работает молниеносно.

В общем, я ожидаю улучшений от следующей GUI-системы на .Net, по крайней мере, там не нужен будет этот синхронизируемый мап и регистрация каждого созданного конрола.
Re[3]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 18.11.05 02:56
Оценка:
Здравствуйте, c-smile, Вы писали:

IT>>Теперь ответь мне на вопрос, что выгоднее — купить новый комьютер или платить тебе за то, чтобы ты попытался выжать последние соки из старого хлама?


PD>>>А сложность задач в 50 раз отнюдь не увеличилась. Для той торговой фирты, с которой я начал, она и не могла увеличиться в 50 раз — просто потому, что нет у нее задач такой сложности. И не предвидится.


IT>>Зато соотношение стоимость разработки софта к стоимости компьютеров выросла просто неимоверно.


CS>Абсолютно верно для систем класса Бухгалтерия.


А мы тут что обсуждаем? PD, можно подумать, видел в налоговой инспекции систему, разработанную аутсорсерами из НАСА по заказу марсиан Тоже мне, блин, rocket science, всё там типа заоптимизировано, по уму, везде только блочное чтение...

CS>Но не забывай о том что вычислительные возможности растут на почве все возврастающих потребностей.


Совершенно верно. Отходы, брак, кстати, тоже увеличиваются. Производство как ни как. Ширпотреб.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Об эффективности - с другой стороны
От: ie Россия http://ziez.blogspot.com/
Дата: 18.11.05 05:07
Оценка:
Здравствуйте, Glоbus, Вы писали:

G><skipped>


В чем-то Вы и правы. Однако не все, наши программисты тупо ведуться на "уловки" запада. Попросили сделать магазин, так сделали параллельно движок, что StoreFront и рядом не стоял. А вдруг еще где пригодиться, да и эстетическое удовольствие какое. Попросили сделать системку сбора информации с тематических вебсайтов + генерацию отчетов, так сделали параллельно расширяемое ядро с возможностью декомпозиции на несколько серверов (хотя в поставленной задаче, о такой необходимости и речи небыло, куда там, но вырос бизнес). Когда клиент захотел, чтоб парсинг и рассылка отчетов проводились на дедикейтед серверах, мы за день подправив конфиги сказали, что все готово. И небыло предела его радости... Так что, простыми задачами нас не испугаешь

Хотя видя людей, приходящих на собеседования, заявляющих об отличных знаниях C# и .NET, а на деле умеющих лишь кидать готовые компоненты на формочку, начинаешь невольно задумываться, что запад, к глубокому сожалению, может победить.
Превратим окружающую нас среду в воскресенье.
Re[5]: Об эффективности - с другой стороны
От: vlad_gri  
Дата: 18.11.05 05:33
Оценка:
Здравствуйте, eao197, Вы писали:


E>для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?

Реально имеется операционный зал.
Установленно 7 компьютеров для выдачи справочной информации и 4 кассовых терминала.
Работает с 2000 г.
Компьютеры P100 c 32Mb.
Обновление железа в планах этак на 2010 год.
Re[6]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 06:22
Оценка:
Здравствуйте, IT, Вы писали:

PD>Я имел в виду, что IT (кажется) отметил, что задач, требующих эффективности, не так уж много. Вот я и хочу понять , что эта ситуация означает. А что дешевле, надежнее и т.д — тема сама по себе интересная, но не об этом сейчас речь.


IT>Я такого не мог сказать. Эффективность никогда не помешает. Вопрос лишь в соотношении полезного выхлопа от достигнутого к цене.


Цитриую еще раз

http://www.rsdn.ru/Forum/Message.aspx?mid=1482509&amp;only=1
Автор: IT
Дата: 11.11.05


>Павел, знаешь в чём твоя ошибка? Особенно в терминах цели vs. средсва? Нет, ты не путаешь цели со средствами, ты просто навязываешь свои цели и приоритеты другим. Ну нет у меня задач, требующих молниеносного чтения данных из файла. А если появятся, то уж на блочном чтении дело не остановится. В дело пойдёт сначала кеширование, а потом и до map-файлов дойдёт. Но пока таких нет. И не только у меня, а у подавляющего большинства здесь присутствующих, т.к. времена, когда это было действительно насущей проблемой для масс давно прошли.


Я, конечно, распространил чтение из файла на все другое, но саму тенденцию твоего письма ИМХО я передал верно.
With best regards
Pavel Dvorkin
Re: попробую еще раз объяснить
От: Pavel Dvorkin Россия  
Дата: 18.11.05 06:54
Оценка:
Прочитал я все, что здесь написали и вижу — мою мысль так и не поняли.

Я не спрашиваю, нужно ли писать эффективно сейчас или нет.
Я не предлагаю вернуться к P100.
Я не задаюсь вопросом о том, какие методы написания программ были тогда и сейчас.

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

Мой вопрос совсем о другом. Излагаю еще раз — тезисно

1. Эффективность сейчас — не главное. Есть иные приоритеты.
2. У большинства нет задач, требующих предельной оптимизации. Некоторый проигрыш по быстродействию и памяти вполне допустим.

Это не мои выводы. Это высказывания моих оппонентов. А вот дальше мои выводы и вопросы.

1. Если предельная эффективнсть не требуется — значит, железо сейчас избыточно. Если бы железо было намного слабее — писали бы то же, но эффективно, выжимали бы из железа все, чтот можно. Дороже. Хуже. Но делали бы.
2. Эта избыточность ресурсов — что означает ?
a) у общества в значительной его части просто нет задач, которые могли бы загрузить эти ресурсы максимально ? Сайт, о котором я писал — именно такой пример.
б) или же общество просто не успело сформулировать такие задачи, потому что рост был столь быстрым, что оно просто еще новых возможностей не осознало ?
3. Что будет, если этот рост прекратится ?
a) произойдет возврат к борьбе за эффективность, так как потребности общества все же будут расти, а ресурсы расти не будут или будут расти медленнее потребностей
б) или останемся с тем, что есть в плане подхода к эффективности просто потому, что нынешнее отношение к ней будет нормой, а "динозавры эффективности" вымрут ?

Вот это меня интересует. Все остальное — не о нем сейчас речь.
With best regards
Pavel Dvorkin
Re[2]: попробую еще раз объяснить
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 18.11.05 07:00
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD> б) или останемся с тем, что есть в плане подхода к эффективности просто потому, что нынешнее отношение к ней будет нормой, а "динозавры эффективности" вымрут ?


PD>Вот это меня интересует. Все остальное — не о нем сейчас речь.

Не вымрут, так как много задач где нужна оптимизация и большие расчеты. По сути разделение произошло давно. Там где нужна скорость разработки на эффективность кода по сути сложно напирать на эффективность вылизывать алгоритмы и тд. Всё от задач.
и солнце б утром не вставало, когда бы не было меня
Re[3]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 07:55
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>задача нахождения стиля для каждого элемента это O( N * M * D ).


это уж от радиуса кривизны зависит (ни на кого конкретного я не намекаю )

CS>Кстати я например использую один трюк который на managed в принципе не реализуем. Но это к слову.


интересно, а что за трюк?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 08:19
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Одного только понять не могу — откуда в представителях первой категории берется столько снобизма, что они называют любую работу кроме мегаэффективного рисования треугольников "рутиной" и "тоской зеленой"?


Вообще-то тоской зеленой обычно люди называют то, что у них оную тоску вызывает. Вызывает, и все.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 08:43
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Вообще-то тоской зеленой обычно люди называют то, что у них оную тоску вызывает. Вызывает, и все.


а вызывает тоску обычно то, чего не понимают
например: "ходил вчера на лекцию по матану. Ну и тоска зеленая!"
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: попробую еще раз объяснить
От: last_hardcoder  
Дата: 18.11.05 08:45
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD> a) у общества в значительной его части просто нет задач, которые могли бы загрузить эти ресурсы максимально ?


Есть задача коммивояжера, которая актуальна, наверное, для любого интернет-магазина. Есть задача загрузки контейнера (напихать в фуру побольше разных коробок). Можно также сформулировать задачу автоматического размещения элементов управления в окне диалога в соответствии с определёнными характеристиками этих элементов управления. Только мало кто может предложить решение этим задачам. Наверное поэтому нет стремления со стороны бизнеса оплачивать решение подобных задач.
Re[4]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 08:59
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Я так понимаю что человек который это написла , и близко не представляет сложности задач по быстрому "выводу треугольника".


я написал вполне ясно: "но сверхсложными способами"
читать умеем?

M>Которая НА ПОРЯДКИ труднее лабания горы посредственного одноразового кода.


покажи пальцем, где я говорил про горы посредственного одноразового кода
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[5]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 09:09
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, minorlogic, Вы писали:


M>>Я так понимаю что человек который это написла , и близко не представляет сложности задач по быстрому "выводу треугольника".


Д>я написал вполне ясно: "но сверхсложными способами"

Д>читать умеем?
Мне показалось ты имелл ввиду что целью этого способа была скорость вывода , или сложность была самоцелью ?


M>>Которая НА ПОРЯДКИ труднее лабания горы посредственного одноразового кода.


Д>покажи пальцем, где я говорил про горы посредственного одноразового кода


вот.
Д>Другим людям нравится решать сложные задачи, но простыми способамами — например, писать свои операционные системы, языки программирования и так далее. Пусть они даже работают не так быстро, как возможно — зато делают такие вещи, которые до них никто раньше не делал.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[2]: Об эффективности - с другой стороны
От: Глеб Алексеев  
Дата: 18.11.05 09:34
Оценка:
Здравствуйте, icWasya, Вы писали:

W>Станут сложными сотни очень сложных ,

W>И станут возможными несколько невозможных
Поэтично, но как-то не вяжется с современным уровнем знаний о NP-полных задачах.
Re[5]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 09:35
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>а вызывает тоску обычно то, чего не понимают


Или то, что хорошо понимают, но что вызывает эту тоску — именно потому. что понимают
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 09:38
Оценка:
Здравствуйте, IT, Вы писали:

IT>А мы тут что обсуждаем? PD, можно подумать, видел в налоговой инспекции систему, разработанную аутсорсерами из НАСА по заказу марсиан Тоже мне, блин, rocket science, всё там типа заоптимизировано, по уму, везде только блочное чтение...


Вот далось тебе это блочное чтение
Кто там им эту систему сделал — не знаю. Оптимально или нет — не знаю. Но налоги вполне берут
With best regards
Pavel Dvorkin
Re[3]: попробую еще раз объяснить
От: Pavel Dvorkin Россия  
Дата: 18.11.05 09:46
Оценка:
Здравствуйте, last_hardcoder, Вы писали:

_>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>> a) у общества в значительной его части просто нет задач, которые могли бы загрузить эти ресурсы максимально ?


_>Есть задача коммивояжера, которая актуальна, наверное, для любого интернет-магазина. Есть задача загрузки контейнера (напихать в фуру побольше разных коробок). Можно также сформулировать задачу автоматического размещения элементов управления в окне диалога в соответствии с определёнными характеристиками этих элементов управления. Только мало кто может предложить решение этим задачам. Наверное поэтому нет стремления со стороны бизнеса оплачивать решение подобных задач.


Первое рассуждение, которое я получил на мой вопрос по существу.
Решение этих задач не то чтобы тривиально, но наработки есть. Пусть не самое оптимальное решение, но что-то сделать можно. Насчет того, что бизнес не оплачивает по этой причине — не думаю. Бизнес как таковой вообще в этом мало разбирается, предложить ему эти задачи может только научный / программистский мир. Но нужно ли это бизнесу ? Проще говоря, все, что не дает дохода — бизнес не интересует, а все, что может его дать — за это он ухватится, даже если там будут теория групп или банаховы пространства . Группы и пространства он разработчикам оставит, а сам будет результатами пользоваться. Так нужно им это или нет ? Или они просто не знают, что это возможно ?
With best regards
Pavel Dvorkin
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 09:49
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Мне показалось ты имелл ввиду что целью этого способа была скорость вывода , или сложность была самоцелью ?


сложность как самоцель — это вопрос отдельный
что касается данного случая, то вполне очевидно, что прямолинейный способ решения будет наверняка не самым эффективным
так же как и то, что наращивание производительности может потребовать очень сложных алгоритмов
с чем ты тут не согласен то?

M>вот.

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

ну если для тебя написание ОС — посредственная задача, то мне остается только удивляться, почему ты еще не нанял Билли Г работать уборшиком
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: попробую еще раз объяснить
От: Pavel Dvorkin Россия  
Дата: 18.11.05 09:51
Оценка:
Здравствуйте, Alexey Axyonov, Вы писали:

AA>Здравствуйте, Pavel Dvorkin, Вы писали:


AA>Есть такое мнение, что большая часть десктопного железа сейчас продается из-за игр. Там же сплошная алгоритмика и перемалывание огромных объемов данных.


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

>И именно индустрия развлечений привела к тому железу, что сейчас мы имеем на своих столах.


Хм, интересная мысль. То есть получается, что ради игр развивали железо, стоимость его от развития слабо зависит (P-100 тогда и PIV-3000 сейчас не сильно отличаются по стоимости), а бизнес-мир получил это железо в качестве подарка от индустрии игр ? Интересная мысль...
With best regards
Pavel Dvorkin
Re[7]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 09:53
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>если так хорошо понимают — почему их имен нет в списке самых богатых людей мира?


Потому что самые богатые люди в мире делали свое богатство не на том, что у них вызывает тоску зеленую
With best regards
Pavel Dvorkin
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 10:10
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Потому что самые богатые люди в мире делали свое богатство не на том, что у них вызывает тоску зеленую


угу. Они просто автоматизировали задачи, которые вызывали у них тоску зеленую. Благодаря своим выдающимся познаниям.
но пополнений в этом списке я пока что не вижу
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Об эффективности - с другой стороны
От: mrozov  
Дата: 18.11.05 10:12
Оценка:
Возможно. Хотя возможно также, что вы просто не умеете их готовить.
С одной стороны — GUI повышенной сложности я не делал.
С другой — делал достаточно нестандартные и не заметил торможений вообще.

Т.е. вы можете быть правы. Но моя практика показывает обратное.
Re[9]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 10:16
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>угу. Они просто автоматизировали задачи, которые вызывали у них тоску зеленую. Благодаря своим выдающимся познаниям.


А можно пример ?
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 10:21
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Одна маленькая деталь, к примеру , при изменениии какого либо из файлов на диске , это изменение отобразится прямо у нас на глазах и добавится или удалится файлик в окошке.


А зачем такое в досе ? Она же вроде однопрограммная была...

M>Для юзера вроде и небольшое отличие , но сложность в реализации по всей системе огромная.


Немного не так. Реализовать именно эту возможность не так уж сложно (другое дело, что в дос не было стандартных диалогов). Перехватить в DOS int 21h и все дела. Написать резидент, который отображал бы каталог и оперативно изменял там информацию — не более чем курсовая работа студента тех времен.
With best regards
Pavel Dvorkin
Re[4]: попробую еще раз объяснить
От: last_hardcoder  
Дата: 18.11.05 10:22
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Решение этих задач не то чтобы тривиально, но наработки есть. Пусть не самое оптимальное решение, но что-то сделать можно. Насчет того, что бизнес не оплачивает по этой причине — не думаю. Бизнес как таковой вообще в этом мало разбирается, предложить ему эти задачи может только научный / программистский мир. Но нужно ли это бизнесу ? Проще говоря, все, что не дает дохода — бизнес не интересует, а все, что может его дать — за это он ухватится, даже если там будут теория групп или банаховы пространства . Группы и пространства он разработчикам оставит, а сам будет результатами пользоваться. Так нужно им это или нет ? Или они просто не знают, что это возможно ?


Думаю, если на sourceforge лежало бы готовое решение, слух быстро бы прошёл. А так, целесообразнее сосредоточиться, например, на маркетинге.
Re[6]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 10:29
Оценка:
Здравствуйте, vlad_gri, Вы писали:

E>>для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?

_> Реально имеется операционный зал.
_> Установленно 7 компьютеров для выдачи справочной информации и 4 кассовых терминала.
_> Работает с 2000 г.
_> Компьютеры P100 c 32Mb.
_> Обновление железа в планах этак на 2010 год.

Я спрашивал, где P200 взять сейчас (2005-й уже заканчивается), а не в 2000-м. В 2000-м мне самому приходилось на p166 с 32MB под OS/2 на C++ писать.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: попробую еще раз объяснить
От: Pavel Dvorkin Россия  
Дата: 18.11.05 10:35
Оценка:
Здравствуйте, last_hardcoder, Вы писали:


_>Думаю, если на sourceforge лежало бы готовое решение, слух быстро бы прошёл. А так, целесообразнее сосредоточиться, например, на маркетинге.


Ну, во-первых, не уверен. что бизнес посещает sourceforge
Во-вторых, проблемами оптимизации занимаются во многих местах. У нас в Омске, к примеру, в филиале институа математики РАН. Я лично знаю тех, кто там этим занимается, и задача коммивояжера или задача о рюкзаке не раз всплывала на защитах дипломных работ у нас на факультете.
Во-третьих, не так уж совсем ничего нет. Той же статистики довольно немало, и не только линейной регрессии от одной переменной . Я сам недавно принял участие в одном таком проекте, роль моя была, правда, совсем не в статистике, а в создании интерфейса к имеющейся C DLL с Фортрана . Но программа там иногда считала по часу, что именно делала — не знаю, что-то связанное с предсказанием курса акций.
With best regards
Pavel Dvorkin
Re[7]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 10:41
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, minorlogic, Вы писали:


M>>Мне показалось ты имелл ввиду что целью этого способа была скорость вывода , или сложность была самоцелью ?


Д>сложность как самоцель — это вопрос отдельный

Д>что касается данного случая, то вполне очевидно, что прямолинейный способ решения будет наверняка не самым эффективным
Д>так же как и то, что наращивание производительности может потребовать очень сложных алгоритмов
Д>с чем ты тут не согласен то?

С тем что задача "быстрого выведения треугольника" юыла озвученна как легкая. Заметь разницу между "выведения треугольника" и "быстрого выведения треугольника" , хотя и само "выведения треугольника" не такое простое как кажется. Намного проще перелопатить какойнить ГУЙ ,насыпать обработчиков , SQL запрос(простой) и т.д.


M>>вот.

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

Д>ну если для тебя написание ОС — посредственная задача, то мне остается только удивляться, почему ты еще не нанял Билли Г работать уборшиком


Она по большей части посредственная , она ОЧЕНЬ ОБЪЕМНАЯ но посредственная , хоть в ОС и нужны куски отшлифованные как алмаз, но это неболбшая и специфичная часть работы.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: Об эффективности - с другой стороны
От: vlad_gri  
Дата: 18.11.05 10:45
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, vlad_gri, Вы писали:


E>>>для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?

_>> Реально имеется операционный зал.
_>> Установленно 7 компьютеров для выдачи справочной информации и 4 кассовых терминала.
_>> Работает с 2000 г.
_>> Компьютеры P100 c 32Mb.
_>> Обновление железа в планах этак на 2010 год.

E>Я спрашивал, где P200 взять сейчас (2005-й уже заканчивается), а не в 2000-м. В 2000-м мне самому приходилось на p166 с 32MB под OS/2 на C++ писать.


Так вроде разговор не о том где брать старое оборудование, а как его эффективно использовать
Re[3]: Об эффективности - с другой стороны
От: bkat  
Дата: 18.11.05 10:59
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, minorlogic, Вы писали:


M>>Одна маленькая деталь, к примеру , при изменениии какого либо из файлов на диске , это изменение отобразится прямо у нас на глазах и добавится или удалится файлик в окошке.


PD>А зачем такое в досе ? Она же вроде однопрограммная была...


M>>Для юзера вроде и небольшое отличие , но сложность в реализации по всей системе огромная.


PD>Немного не так. Реализовать именно эту возможность не так уж сложно (другое дело, что в дос не было стандартных диалогов). Перехватить в DOS int 21h и все дела. Написать резидент, который отображал бы каталог и оперативно изменял там информацию — не более чем курсовая работа студента тех времен.


И это работало бы только в курсовой этого студента.
Для каждой новой программы это надо было бы заново специально прикручивать.
Re[8]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 11:10
Оценка:
Здравствуйте, vlad_gri, Вы писали:

E>>Я спрашивал, где P200 взять сейчас (2005-й уже заканчивается), а не в 2000-м. В 2000-м мне самому приходилось на p166 с 32MB под OS/2 на C++ писать.


_>Так вроде разговор не о том где брать старое оборудование, а как его эффективно использовать


Как можно эффективно использовать то, чего практически нет?
Нет, ну серьезно. Захочется мне собрать кластер из 256 машин класса P200. И где мне их набрать?
А если в наличии есть только P4-2GHz, то имеет ли смысл проектировать решение и разрабатывать программу так же, как для P200?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 18.11.05 11:21
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Небольшое отступление.


M>Вот многие говорят что ресурсы кушаются но непонятно куда и т.д. Забывая о многих вещах .


M>Например банальное окошко "Open File" , сравните такое окошко в досе и например в XP , казалось практически одно и то же делает .


M>Но !!!


M>Одна маленькая деталь, к примеру , при изменениии какого либо из файлов на диске , это изменение отобразится прямо у нас на глазах и добавится или удалится файлик в окошке.


M>Для юзера вроде и небольшое отличие , но сложность в реализации по всей системе огромная.


Нет там никакой сложности -- подписка на уведомление об изменении каталога.
Делается элементарно.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: попробую еще раз объяснить
От: last_hardcoder  
Дата: 18.11.05 11:24
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Ну, во-первых, не уверен. что бизнес посещает sourceforge

PD>Во-вторых, проблемами оптимизации занимаются во многих местах. У нас в Омске, к примеру, в филиале институа математики РАН. Я лично знаю тех, кто там этим занимается, и задача коммивояжера или задача о рюкзаке не раз всплывала на защитах дипломных работ у нас на факультете.
PD>Во-третьих, не так уж совсем ничего нет. Той же статистики довольно немало, и не только линейной регрессии от одной переменной . Я сам недавно принял участие в одном таком проекте, роль моя была, правда, совсем не в статистике, а в создании интерфейса к имеющейся C DLL с Фортрана . Но программа там иногда считала по часу, что именно делала — не знаю, что-то связанное с предсказанием курса акций.

Да, предсказание курса акций сейчас очень модно.
Я сам чисто случайно сталкивался с задачей рюкзака. Был период на прошлой работе, когда у начальства не нашлось, чем ещё меня занять. Очень хотелось нагрузить процессор как следует. Только готового алгоритма так и не нашёл. Попадались какие-то статьи, из которых было совершенно не понятно, насколько эффективны и применимы к реальным задачам предлагаемые в них эвристики. Разработка собственного алгоритма явно выходила за рамки этого периода, так что пришлось махнуть на это дело рукой.
Re[4]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 18.11.05 11:27
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Windows 2.0 у меня неплохо одно время поработала на 286-й 17MHzб 2 MB ОЗУ

Это для нее была шикарная конфигурация.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: Об эффективности - с другой стороны
От: vlad_gri  
Дата: 18.11.05 11:29
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, vlad_gri, Вы писали:


E>>>Я спрашивал, где P200 взять сейчас (2005-й уже заканчивается), а не в 2000-м. В 2000-м мне самому приходилось на p166 с 32MB под OS/2 на C++ писать.


_>>Так вроде разговор не о том где брать старое оборудование, а как его эффективно использовать


E>Как можно эффективно использовать то, чего практически нет?

E>Нет, ну серьезно. Захочется мне собрать кластер из 256 машин класса P200. И где мне их набрать?
E>А если в наличии есть только P4-2GHz, то имеет ли смысл проектировать решение и разрабатывать программу так же, как для P200?
Ну и ставь P4-2GHz, но решение и разработка должны быть расчитанны на перспективу, чтоб не нужно было через месяц обновлять железо, добавлять память и.т.д.
Re[10]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 11:37
Оценка:
Здравствуйте, vlad_gri, Вы писали:

E>>Нет, ну серьезно. Захочется мне собрать кластер из 256 машин класса P200. И где мне их набрать?

E>>А если в наличии есть только P4-2GHz, то имеет ли смысл проектировать решение и разрабатывать программу так же, как для P200?
_>Ну и ставь P4-2GHz, но решение и разработка должны быть расчитанны на перспективу, чтоб не нужно было через месяц обновлять железо, добавлять память и.т.д.

Так вот, если в моем распоряжении есть P4-2GHz, то у меня есть выбор -- сделать задачу за месяц на Smalltalk/Ruby или за два месяца на C++. При этом реализация на Smalltalk/Ruby будет грузить процессор на 80% (при пиковой нагрузке), а C++ -- на 20%.

В пользу чего делать выбор?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Об эффективности - с другой стороны
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 18.11.05 11:47
Оценка:
Здравствуйте, eao197, Вы писали:

E>Так вот, если в моем распоряжении есть P4-2GHz, то у меня есть выбор -- сделать задачу за месяц на Smalltalk/Ruby или за два месяца на C++. При этом реализация на Smalltalk/Ruby будет грузить процессор на 80% (при пиковой нагрузке), а C++ -- на 20%.


E>В пользу чего делать выбор?


Зависит от того, на сколько соотносится стоимость месяца работы и нового компа.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[12]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 11:52
Оценка:
Здравствуйте, Andrei N.Sobchuck, Вы писали:

E>>Так вот, если в моем распоряжении есть P4-2GHz, то у меня есть выбор -- сделать задачу за месяц на Smalltalk/Ruby или за два месяца на C++. При этом реализация на Smalltalk/Ruby будет грузить процессор на 80% (при пиковой нагрузке), а C++ -- на 20%.


E>>В пользу чего делать выбор?


ANS>Зависит от того, на сколько соотносится стоимость месяца работы и нового компа.


Если речь идет не об одном компьютере (а здесь речь шла о большем их количестве), то стоимость месяца работы будет гораздо ниже стоимости железа, на котором софт будет работать.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[11]: Об эффективности - с другой стороны
От: vlad_gri  
Дата: 18.11.05 11:53
Оценка:
Здравствуйте, eao197, Вы писали:


E>Так вот, если в моем распоряжении есть P4-2GHz, то у меня есть выбор -- сделать задачу за месяц на Smalltalk/Ruby или за два месяца на C++. При этом реализация на Smalltalk/Ruby будет грузить процессор на 80% (при пиковой нагрузке), а C++ -- на 20%.


E>В пользу чего делать выбор?

Если поставленна задача сделать за месяц то Smalltalk/Ruby.
А через месяц еще задача, которая будет крутится паралельно и.т.д.
И начнется ...
Re[5]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 18.11.05 11:58
Оценка:
Здравствуйте, GlebZ, Вы писали:

V>>Windows 2.0 у меня неплохо одно время поработала на 286-й 17MHzб 2 MB ОЗУ

GZ>Это для нее была шикарная конфигурация.

Я на примерно такой же конфигурации Windows 3.0 запускал и даже программы писал под BC++ 2.0
With best regards
Pavel Dvorkin
Re[7]: попробую еще раз объяснить
От: Pavel Dvorkin Россия  
Дата: 18.11.05 12:04
Оценка:
Здравствуйте, last_hardcoder, Вы писали:

_>Я сам чисто случайно сталкивался с задачей рюкзака. Был период на прошлой работе, когда у начальства не нашлось, чем ещё меня занять. Очень хотелось нагрузить процессор как следует. Только готового алгоритма так и не нашёл. Попадались какие-то статьи, из которых было совершенно не понятно, насколько эффективны и применимы к реальным задачам предлагаемые в них эвристики. Разработка собственного алгоритма явно выходила за рамки этого периода, так что пришлось махнуть на это дело рукой.


Я бы в таком случае посоветовал не изобретать свои велосипеды и не пытаться понять, что здесь есть что, а обратиться к специалистам-математикам. Если, конечно, это всерьез нужно.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 18.11.05 12:16
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Шахтер, Вы писали:


Ш>>Нет там никакой сложности -- подписка на уведомление об изменении каталога.


PD>Я полагаю, что minorlogic имел в виду, как это в системе организовано, т.е как она шлет эти уведомления. Это несколько сложнее, задействуются объекты ядра (файл), а для этого нужно, чтобы был диспетчер объектов и т.д — в общем, ядро NT.


Опять же -- в чем сложность? Список подписчиков на событие реализовать?
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 18.11.05 12:17
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, GlebZ, Вы писали:


V>>>Windows 2.0 у меня неплохо одно время поработала на 286-й 17MHzб 2 MB ОЗУ

GZ>>Это для нее была шикарная конфигурация.

PD>Я на примерно такой же конфигурации Windows 3.0 запускал и даже программы писал под BC++ 2.0

А под ней, 286 16MHz 2MB я некоторое время работал и с Windows 3.1. И более менее работал. BC3.1 работал нормально. У меня была машина, где Win 3.1 и на 1 меге работал. Правда Word лучше было не загружать. В основном там работали под Write.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Об эффективности - с другой стороны
От: Glоbus Украина  
Дата: 18.11.05 13:35
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, Glоbus, Вы писали:


G>>Значит они считают, что за такие деньги это преемлемое качество. Ну не нужен им на сайте интернет-магазина мегаэффективный поиск по списку товаров с указанием хитрых кретериев — пользователь подождет вместо одной пять секунд, браузер повтыкает ,в результате все спишут на то что вот мол тормозно сетка работает.


PD>Спишут-то спишут, но следующий раз клиент к конкуренту пойдет. У которого сайт лучше.


PD>Вот пример, личный. Искал себе турпоездку. Нашел в Рамблере n ссылок, потом по ним пошел. Если где-то не открывалось или там я не мог быстро получить, что меня интересует — закрывал окно без всяких разговоров. Турфирм море...


Ну а они, заразы, все равно довольны и таким качеством...
Удачи тебе, браток!
Re[4]: Об эффективности - с другой стороны
От: Mamut Швеция http://dmitriid.com
Дата: 18.11.05 15:52
Оценка:
NC>Не вижу где не хватает памяти дико. И еще 512 метров никак бюджет не перенапрягут.

Фирма, млин. Не дают

NC>Если уж говорить о профессиональном юзании компа(разработка, у вас я вижу Photoshop, Dreamweaver) то поставить себе 1Гб-1.5 вполне нормально. Я долго работал на 512 Мб, все было ок, правла когда возникла необходимость разрабатывать на виртуалке поставил еще гиг без проблем.
... << RSDN@Home 1.2.0 alpha rev. 619>>


dmitriid.comGitHubLinkedIn
Re[6]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 18.11.05 15:58
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Приведу сравнение возможно спорное но очень яркое.

А теперь начинаем объяснять нам глупым, что здесь имелось ввиду.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Об эффективности - с другой стороны
От: vlad_gri  
Дата: 18.11.05 16:13
Оценка:
Здравствуйте, OnThink, Вы писали:


OT>Никаких "начнётся". Нельзя выбирать заведомо трудоёмкое решение из-за каких-то "начнётся". Вопросы надо РЕШАТЬ, а не перманентно обдумывать. Завтра >вы нафантазируете ещё больше и будете писать КОНКРЕТНУЮ рассматриваемую задачу на кодах процессора?



Вы когда-нибудь занимались не шарашками расчитанными на месяц, типа получил бабки и свалил,
а нормальным сопровождением своих же програм которое длится более n лет.
Деньги нужно брать не за РЕШЕНИЕ, а за то что оно (ваше РЕШЕНИЕ) будет работать и приносить клиенту прибыль.

n — 1,2,3 и.т.д

OT>В конце концов, программный комплекс — это совокупность программы и железа. И если заказчик ПОТОМ решит установить на это же железо ещё >чего-нибудь, то это уже будет его проблема.


И обязательно решит. (Вашими молитвами)
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 17:18
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А можно пример ?


http://www.paulgraham.com/avg.html
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 17:18
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>С тем что задача "быстрого выведения треугольника" юыла озвученна как легкая. Заметь разницу между "выведения треугольника" и "быстрого выведения треугольника" , хотя и само "выведения треугольника" не такое простое как кажется.


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

M>Намного проще перелопатить какойнить ГУЙ ,насыпать обработчиков , SQL запрос(простой) и т.д.


а кто сказал, что это нужно делать вручную?
если задача действительно объемная, то таким образом можно запросто все пальцы отдавить

M>Она по большей части посредственная , она ОЧЕНЬ ОБЪЕМНАЯ но посредственная , хоть в ОС и нужны куски отшлифованные как алмаз, но это неболбшая и специфичная часть работы.


что сложнее — выдолбить из мрамора статую высотой в два метра, или построить небоскреб высотой в энное количество сотен метров?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 17:18
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>По моему глубокому убеждению, вопрос материальной состоятельности других людей не должен Вас беспокоить. Вообще не должен.


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

MS>А "написание ОС" — это задача гигантского объема, а не сложности. Да, там есть нетривиальные части, но их объем в процентном отношении к тривиальному коду — исчезающе мал.


Части — тривиальны, построение же из них целого — чрезвычайно сложная задача.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[4]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 17:18
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Можно процитировать мои слова, демонстрирующие снобизм? Речь была лишь о личных предпочтениях. У меня (лично у меня) — вот такие-то и такие-то предпочтения, и я специально сделал на этом акцент.


Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности.
<skipped>
Я стремлюсь быть уникальным, штучным экземпляром, мне не интересно находиться на уровне рутинщика.

ась? Стремление быть уникальным — это конечно похвально, но зачем же называть рутинщиками всех, кто не разделяет твоих пристрастий?

Д>>Некоторым людям нравится решать примитивные задачи наподобие вывода треугольников, но сверхсложными способами. Тратить на решение каждой задачи массу времени и сил, но зато треугольники будут выводиться аж в два раза быстрее!


MS>Я бы попросил читать то что написано, а не то, что хочется прочесть. Внимательнее, пожалуйста. Вывод треугольников — это действительно примитивная задача, а "вывод вдвое быстрее" — примерно такая же рутина, как и ковыряние в кривом API (собственно, это задача и относится к категории API). Натривиальным является некий способ генерации этих самых треугольников (это лишь для примера). Это очень тонкий момент, часто вызывающий непонимание. В представлении большинства людей "оптимизация" — это ковыряние на уровне машинных кодов и/или написание длинного и неряшливого спагети-кода. Это тоже на редкость тоскливое занятие. Повторю еще раз — интересной (для меня!) является прежде всего работа над алгоритмической частью, когда, например, требуется приблизить O(N log N) к O(N). Вам знакомо понятие О-нотации? Это чем-то напоминает процесс доказательства математических теорем. И язык как таковой здесь не имеет большого значения.


я прекрасно понял, что ты имел в виду. Жаль, что ты не понял, о чем говорил я.

MS>Интересно, какую такую "операционную систему" или "язык программирования" можно придумать, да еще и так, как "никто раньше не делал", и самое главное — не для самоудовлетворения, а чтобы ими пользовались хотя бы пара тысяч людей? По-моему, это что-то из области заведомой утопии. А я реалист и "наполеонством" не страдаю.


Иными словами, ты считаешь эту задачу слишком сложной?

MS>Есть подозрение, что то, что Вы, уважаемый Дарней понимаете под "сложными задачами" — это на самом деле строительство вширь, когда конструкции могут стоять только на земле, а при попытке что-то соорудить из них ввысь, получается нелепое и неустойчивое нагромождение.


это подозрение не имеет под собой никаких оснований
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[5]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 17:28
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Если уж ты заговорил про художников, давай расставим все точки над "Ё"

Д>Ну так вот — у художников все стандартизовано куда покруче, чем у программистов.
Д>Стандартны материалы, стандартны инструменты, и даже техники нанесения рисунка — тоже стандартны. Так что мастера просто используют набор готовых стандартов. Изобретают что-то новое только гении, которых можно пересчитать на пальцах за всю историю человечества.

И что эти гении изобретают? Новый состав красок? Или новый оттенок сангины?

Крайне неудачное сравнение.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 17:30
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>

Д>Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности.
Д><skipped>
Д>Я стремлюсь быть уникальным, штучным экземпляром, мне не интересно находиться на уровне рутинщика.

Д>ась? Стремление быть уникальным — это конечно похвально, но зачем же называть рутинщиками всех, кто не разделяет твоих пристрастий?

А как их еще называть? Если человек может спокойно заниматься рутиной (от которой бежит не только McSeem2, но и я, к примеру), то почему его нельзя назвать рутинщиком?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 18:37
Оценка:
Здравствуйте, eao197, Вы писали:

E>Крайне неудачное сравнение.


не я его предложил.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 18:37
Оценка:
Здравствуйте, eao197, Вы писали:

E>А почему Энштейн не был самым богатым человеком в мире (в свое время)?


мы говорим не про абстрактные теории, из которых нельзя извлечь непосредственную пользу. Мы говорим о программировании, то есть — производстве некоторой продукции, которая стоит денег.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 18.11.05 18:37
Оценка:
Здравствуйте, eao197, Вы писали:

E>А как их еще называть? Если человек может спокойно заниматься рутиной (от которой бежит не только McSeem2, но и я, к примеру), то почему его нельзя назвать рутинщиком?


Иными словами, если человек не интересуется выжиманием эффективности, то он занимается обязательно рутиной?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 20:58
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, eao197, Вы писали:


E>>А как их еще называть? Если человек может спокойно заниматься рутиной (от которой бежит не только McSeem2, но и я, к примеру), то почему его нельзя назвать рутинщиком?


Д>Иными словами, если человек не интересуется выжиманием эффективности, то он занимается обязательно рутиной?


Я бы сказал , что это один из признаков рутины , писать программу для которой эфективность неважна.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 18.11.05 20:58
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Здравствуйте, Шахтер, Вы писали:


Ш>>>Нет там никакой сложности -- подписка на уведомление об изменении каталога.


PD>>Я полагаю, что minorlogic имел в виду, как это в системе организовано, т.е как она шлет эти уведомления. Это несколько сложнее, задействуются объекты ядра (файл), а для этого нужно, чтобы был диспетчер объектов и т.д — в общем, ядро NT.


Ш>Опять же -- в чем сложность? Список подписчиков на событие реализовать?


Нет , это я хотел продемонстрировать куда кушаются много ресурсов , одна такая мелочь , вторая , третья ... 2000ная и т.д.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[7]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 21:52
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>Крайне неудачное сравнение.


Д>не я его предложил.


Но ведь это же ты сказал:

Ну так вот — у художников все стандартизовано куда покруче, чем у программистов.
Стандартны материалы, стандартны инструменты, и даже техники нанесения рисунка — тоже стандартны. Так что мастера просто используют набор готовых стандартов. Изобретают что-то новое только гении, которых можно пересчитать на пальцах за всю историю человечества.


Так вот я и говорю, что неудачно сравнивать изобретательство в живописи и изобретательство в программировании так, как это делаешь ты.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 18.11.05 21:52
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>А как их еще называть? Если человек может спокойно заниматься рутиной (от которой бежит не только McSeem2, но и я, к примеру), то почему его нельзя назвать рутинщиком?


Д>Иными словами, если человек не интересуется выжиманием эффективности, то он занимается обязательно рутиной?


Совсем не обязательно. Я лично смотрю на это так: некоторым людям жуть как не хочется заниматься рутиной. И они (т.е. мы ) находят для себя занятия по интересам. McSeem2, скажем, делает это увеличением скорости работы графики. Я -- в изобретении велосипедов для разработчиков. Кто-то еще чем-то страдает. Факт, однако, в том, что не так уж много народу хочет заниматься подобными вещами. Либо хочет, но не настолько, чтобы этим решиться на это.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[5]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.05 02:04
Оценка:
Здравствуйте, Дарней, Вы писали:

MS>>Интересно, какую такую "операционную систему" или "язык программирования" можно придумать, да еще и так, как "никто раньше не делал", и самое главное — не для самоудовлетворения, а чтобы ими пользовались хотя бы пара тысяч людей? По-моему, это что-то из области заведомой утопии. А я реалист и "наполеонством" не страдаю.


Д>Иными словами, ты считаешь эту задачу слишком сложной?


Слишком объемной. Там же лопатить-неперелопатить, даже при условии, что думать не надо.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.05 02:27
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>

Д>Лично я люблю решать задачи, которые изначально требуют максимально возможной эффективности.
Д><skipped>
Д>Я стремлюсь быть уникальным, штучным экземпляром, мне не интересно находиться на уровне рутинщика.

Д>ась? Стремление быть уникальным — это конечно похвально, но зачем же называть рутинщиками всех, кто не разделяет твоих пристрастий?

А откуда следует вывод, что я отношусь с неуважением к рутинщикам? Я говорил лишь о том, что это мне не нравятся рутинные задачи. Кому-то нравятся и я им даже завидую. Типа как старый наркоман завидует непорочным девственникам
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[7]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 19.11.05 02:34
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я, конечно, распространил чтение из файла на все другое, но саму тенденцию твоего письма ИМХО я передал верно.


Здрасти

Это называется извратить чьи-либо слова и сделать на таком извращении далеко идущие выводы.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[4]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 19.11.05 03:00
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, c-smile, Вы писали:


CS>>задача нахождения стиля для каждого элемента это O( N * M * D ).


Д>это уж от радиуса кривизны зависит (ни на кого конкретного я не намекаю )


Намек не понял. Это про что?
Опять что-то про значение синуса в военное время?

Если хочешь серьезно вникнуть в проблему
то вот мой ответ David Hyatt (Apple, Safari)
http://lists.w3.org/Archives/Public/www-style/2005Nov/0086.html
Там в тексте есть ссылка на его блог и описаны хрустальные зАмки оптимизации в Safari.

Проблема на самом деле очень серьезная в вычислительном плане.


CS>>Кстати я например использую один трюк который на managed в принципе не реализуем. Но это к слову.


Д>интересно, а что за трюк?


Например reinterpret_cast, иногда одни конструкции эффектвнее инетерпретировать
как другие или как raw bytes.
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Если это намек на меня, то во-первых, у меня нет богатого папы для раскрутки, во-вторых, мне не интересно заниматься агрессиивным и беспардонным маркетингом. И у меня нет цели рулить корпорацией — для меня это тоже рутина, несмотря ни на какие деньги.


Нет, не на тебя
это намек на ту абстрактную персону, про которую говорил Дворкин
кстати, а откуда данные про богатого папу?

MS>Есть сильное подозрение, что большинство людей, которые искренне любят решения Microsoft, привлекают не технические решения, а объемы денег этой фирмы. Достаточно слов "миллиарды долларов" и все — можно брать тепленьким, схавает любую баланду и готов горбатиться нещадно. На это и делается весь расчет.


может, хватит уже додумывать за меня?

Д>>Части — тривиальны, построение же из них целого — чрезвычайно сложная задача.


MS>У нас разные понятия о сложности.


вот-вот.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, McSeem2, Вы писали:

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


MS>Известно ли тебе, что все сегодняшние технологические достижения опираются на те самые "абстрактные теории"?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>У нас ОЧЕНЬ разный взгляд на то , что такое программирование ...


возможно
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, eao197, Вы писали:

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


"но в песне ты не понял совсем ничего" (С)
про изобретательство в живописи начал Шахтер — вот к нему и все вопросы
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Я бы сказал , что это один из признаков рутины , писать программу для которой эфективность неважна.


какое отношение рутина имеет к эффективности или отсутствию оной?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Слишком объемной. Там же лопатить-неперелопатить, даже при условии, что думать не надо.


чтобы не приходилось много лопатить, как раз и надо думать
причем очень много
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>А откуда следует вывод, что я отношусь с неуважением к рутинщикам? Я говорил лишь о том, что это мне не нравятся рутинные задачи.


Похоже, никто так и не понял, что я хотел сказать.
Мне тоже не нравятся рутинные задачи. Но выжиманием скорости ради развлечения я давно не занимался и не собираюсь. Потому что это та же самая рутина.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[5]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Намек не понял. Это про что?


давай все-таки уточним, откуда берется сложность N * M * D
Насколько я понял — для каждого элемента ищем соответствующий стиль, откуда и берется N * M
Почему там фигурирует еще и D?

CS>Опять что-то про значение синуса в военное время?


опять?

CS>Если хочешь серьезно вникнуть в проблему

CS>то вот мой ответ David Hyatt (Apple, Safari)
CS>http://lists.w3.org/Archives/Public/www-style/2005Nov/0086.html
CS>Там в тексте есть ссылка на его блог и описаны хрустальные зАмки оптимизации в Safari.

попробую прочитать, если будет время
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, eao197, Вы писали:

E>Совсем не обязательно. Я лично смотрю на это так: некоторым людям жуть как не хочется заниматься рутиной. И они (т.е. мы ) находят для себя занятия по интересам. McSeem2, скажем, делает это увеличением скорости работы графики. Я -- в изобретении велосипедов для разработчиков. Кто-то еще чем-то страдает. Факт, однако, в том, что не так уж много народу хочет заниматься подобными вещами. Либо хочет, но не настолько, чтобы этим решиться на это.


Вероятно, главная особенность твоих "велосипедов" — это то, что они ездят быстрее аналогов?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 19.11.05 05:28
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Конечно глыбы точить можно творчески , улучшая производительность и т.д. но глыбы все равно остануться глыбами ...


такие "произведения искусства" в России до сих пор на каждой центральной площади стоят
по мне, так лучше бы они навсегда остались глыбами камня...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[6]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 19.11.05 05:40
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, c-smile, Вы писали:


CS>>Намек не понял. Это про что?


Д>давай все-таки уточним, откуда берется сложность N * M * D

Д>Насколько я понял — для каждого элемента ищем соответствующий стиль, откуда и берется N * M
Д>Почему там фигурирует еще и D?

Отсюда:

div p { background:... }


CS>>Опять что-то про значение синуса в военное время?


Д>опять?


Развей мою печаль: про "кривые руки" это про что все-таки было?
Re[9]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 19.11.05 09:11
Оценка:
Здравствуйте, Дарней, Вы писали:

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


Д>"но в песне ты не понял совсем ничего" (С)

Д>про изобретательство в живописи начал Шахтер — вот к нему и все вопросы

Ну что же, сравним:

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


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

Ты же сказал:

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


Можешь мне объяснить, что ты подразумевал под "изобретают что-то новое"?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[7]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 19.11.05 12:27
Оценка:
Здравствуйте, GlebZ, Вы писали:

Потерял нить рассуждений. Но не имею оснований не верить . Значит бывают.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 19.11.05 16:47
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Я так понимаю что человек который это написла , и близко не представляет сложности задач по быстрому "выводу треугольника". Которая НА ПОРЯДКИ труднее лабания горы посредственного одноразового кода.


А зачем это вообще надо? Сейчас эти задачи решаются железом, всё равное быстрее спец-процессора не получится.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[5]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 19.11.05 17:07
Оценка:
Здравствуйте, IT, Вы писали:

M>>Я так понимаю что человек который это написла , и близко не представляет сложности задач по быстрому "выводу треугольника". Которая НА ПОРЯДКИ труднее лабания горы посредственного одноразового кода.


IT>А зачем это вообще надо? Сейчас эти задачи решаются железом, всё равное быстрее спец-процессора не получится.


Это тоже один из обывательских стереотипов — "эти задачи решаются железом". Какие задачи? Каким железом? Все, что умеет самая навороченная нвидия — это рисовать треугольники. Но очень быстро. Но только треугольники. Но надо объяснить, какие конкретно треугольники надо нарисовать. И это "объяснение" обсчитывается на CPU — больше ему обсчитываться негде.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Об эффективности - с другой стороны
От: Cyberax Марс  
Дата: 20.11.05 13:38
Оценка:
McSeem2 wrote:

> Это тоже один из обывательских стереотипов — "эти задачи решаются

> железом". Какие задачи? Каким железом? Все, что умеет самая
> навороченная нвидия — это рисовать треугольники.

Уже нет Начиная с первого GeForce на чипах появился GPU — это такой
быстрый векторный CPU, заточеный специально под графику. Он умеет
перемножать матрицы, рассчитывать тени и т.п.

А в GF4 появилась возможность писать на GPU программы в виде вертексных
и пиксельных шейдеров. Некоторые даже используют GPU для неграфических
рассчетов: http://www.gpgpu.org/

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 03:20
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Потерял нить рассуждений. Но не имею оснований не верить . Значит бывают.


из любителей низкоуровневщины, с которыми мне случалось встречаться лично, таких было подавляющее большинство
но это только мои собственные наблюдения, от картины в целом это может отличаться
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 03:20
Оценка:
Здравствуйте, eao197, Вы писали:

E>Можешь мне объяснить, что ты подразумевал под "изобретают что-то новое"?


"типа и кисти с красками у него свои"
какие же они "свои", если они покупаются в ближайшей лавке, только чуть более дорогой?

E>Имхо, здесь про изобретательство вообще ничего не говориться. А вот об отношениях между учениками-учителями и о массовом спросе и предложении на ширпотреб -- да. Шахтер даже не говорил, что мастера изобретают кисти и краски -- они просто покупают готовые, но более дорогие и качественные, но не изобретают их.


В любом случае, к теме беседы это отношения не имеет. Давай вообще завязывать с оффтопиком, ок?
Я вообще то начинал о том, что сложность бывает разная, и совсем необязательно связана с оптимизацмей по скорости.
А закончилось — выяснением, кто здесь мастер, а кто подмастерье, и у кого пиписка длиннее
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 03:20
Оценка:
Здравствуйте, McSeem2, Вы писали:

<skipped>

абсолютно не понимаю, что ты хотел продемонстрировать этими прописными истинами

MS>Прошу заметить, что данный пример является лишь иллюстрацией. Понятно, что современными средствами это делается по-другому, типа remove_if или методами в классе строки. Но принцип от этого не изменяется. Есть бесчисленное множество других задач, которые не решаются стандартными методами. И вот алгоритмический анализ и сокращение сложности там, где это принципиально возможно — это очень сильное колдунство. Оно не может быть рутиной по определению, оно может лишь не являться необходимым. Но такие задачи, в которых алгоритмическая оптимизация является несущественной, не вызывают у меня ни малейшего интереса.


Можно упрощать существующие алгоритмы, можно — придумывать свои, для решения более сложных задач. Или ты и с этим не согласен?
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 03:20
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Развей мою печаль: про "кривые руки" это про что все-таки было?


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

Пройти по документу, сгруппировать все однотипные элементы (линки — в одну кучку, простой текст — в другую, и т.п.). Для каждой из этих групп извлекаем соответствующий стиль и применяем ко всем элементам, которые попали в группу. Вместо N * M получаем N + const * M, что уже намного лучше.

Правда, узлы, для которых переопределяется CSS, усложняют положение. Придется проводить такую обработку не для всего документа в целом, а для каждого из его узлов, имеющего свою под-CSS.
Альтернативный вариант — пройти по документу и построить глобальную плоскую CSS, заменив у элементов стили на новые. После чего обработать весь документ как одно целое.
Второй вариант должен быть затратнее по расходу памяти, но зато быстрее. Хотя это зависит от конкретных документов, без экспериментов точно сказать нельзя.
В любом случае, сложность O(N * M * D) — это реально только для самой примитивной лобовой реализации
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.05 04:21
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, c-smile, Вы писали:


CS>>Развей мою печаль: про "кривые руки" это про что все-таки было?


Д>пара идей, которые приходят в голову без особого углубления в проблему


[поскипано]

"без особого углубления в проблему" и тем более без знания CSS
последний(ие) запрограммировать невозможно вообще.
Re[9]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 05:01
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>[поскипано]


CS>"без особого углубления в проблему" и тем более без знания CSS

CS>последний(ие) запрограммировать невозможно вообще.

давайте лучше отставим в сторону менторский тон и поищем в идеях фатальные недостатки, несовместимые с жизнью. Если таковые там есть.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 05:06
Оценка:
Здравствуйте, Дарней, Вы писали:

E>>Можешь мне объяснить, что ты подразумевал под "изобретают что-то новое"?


Д>"типа и кисти с красками у него свои"

Д>какие же они "свои", если они покупаются в ближайшей лавке, только чуть более дорогой?

Видимо, сказалось то, что я когда-то пытался научиться живописи. Так вот у художников никто сам вручную кисти не делает. Да и краски, в подавляющем большинстве, то же. Максимум -- это грунтовку свою, но там и рецептура примитивная -- вода, желатин и гуашь.

А вот разница при использовании дешовых "noname" кистей (неизвестно из какого зверя) и колонковых/беличьих (т.е. дорогих по определению) -- просто огромна. Особенно это заметно при использовании тонких круглых кистей, которые в дешовом варианта начинают разлазиться после трех-четырех сеансов.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 05:51
Оценка:
Здравствуйте, eao197, Вы писали:

E>А вот разница при использовании дешовых "noname" кистей (неизвестно из какого зверя) и колонковых/беличьих (т.е. дорогих по определению) -- просто огромна. Особенно это заметно при использовании тонких круглых кистей, которые в дешовом варианта начинают разлазиться после трех-четырех сеансов.


я никогда и не говорил, что дешевые инструменты лучше дорогих
только какое отношение это всё имеет к исходной теме, я понять не могу
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[8]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 21.11.05 06:24
Оценка:
Здравствуйте, IT, Вы писали:

IT>Это называется извратить чьи-либо слова и сделать на таком извращении далеко идущие выводы.


Это называется голословным утверждением. В чем заключается извращение слов ?
With best regards
Pavel Dvorkin
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 06:36
Оценка:
Здравствуйте, eao197, Вы писали:

E>Не простой вопрос, на самом деле. Вот возьмем один из моих самых любимых велосипедов -- объектное хранилище ObjESSty. Сама по себе ObjESSty -- это около пятидесяти тысяч строк посредственного C++ кода (как смог, так и написал). Но вот ее использование в некоторых задачах (а именно долговременное хранение сложных С++ объектов) позвляет писать гораздо меньше прикладного кода (по сравнению с теми же SQL БД).


E>Так что, я занимаюсь рутиной при кодировании ObjESSty, но избавляюсь от рутины при использовании ObjESSty.


вообще-то, я то же самое говорил

E>Проблема данного обсуждения в том, что под эффективностью здесь понимают сугубо скорость работы кода. Но почему-то забывают, что скорость написания кода так же имеет важное значение, для многих задач даже еще более важное. Вот мои велосипеды не позволяют быстро ездить (в смысле скорости работы кода), зато позволяют быстро запрягать (в смысле более быстрого кодирования).




E>Ну и что еще более важно -- для успешности проекта нужна нормальная команда, в которую входят и те и другие. Без внутренних войн и перетягивания одеяла на себя. Но это уже совсем другая история.


проблема в том, что многие из тех самых "программистов узких мест" имеют обыкновение считать всех окружающих идиотами
собственно, реакция некоторых участников нашего флэйма прекрасно это демонстрирует
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[13]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 08:07
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>я никогда и не говорил, что дешевые инструменты лучше дорогих

Д>только какое отношение это всё имеет к исходной теме, я понять не могу

Такое отношение, имхо, что сравнение между работой программистов и художников у Шахтера получилось более рельным (на мой сермяжный взгляд), чем у тебя. Ближе к действительности, так сказать.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 08:16
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Это подходит только для случаев, когда селекторов в CSS мало. А если их много? А это — суровая реальность соврменной верстки.


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

S>Я не специалист, но геморрой тут заметен невооруженным взглядом.


геморрой конечно немаленький, но по моему впечатлению, его происхождение — в основном в сложности самой системы применения правил CSS. А от этого в любом случае никуда не деться
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 08:16
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Примерно же такая оптимизация работает в Mozilla насколько мне известно.


то есть примерно то же самое, что я предлагал
хотя дьявол, как всегда, в деталях

CS>У меня используется несколько иная схема — традиционный caching. Быстрее работает в моем случае.


CS>Приведенный список 10 ситуаций (особенно последняя тема) сводят на нет возможные способы редуцирования O(N*M*D)

CS>Например сайты семейства wikipedia в принципе не оптимизируемы из-за своей системы стилей.

тем не менее, мне кажется, что случай когда каждый элемент на странице имеет отличающийся от других стиль — это исключение, а не правило
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[12]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.05 08:40
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, c-smile, Вы писали:


CS>>Примерно же такая оптимизация работает в Mozilla насколько мне известно.


Д>то есть примерно то же самое, что я предлагал

Д>хотя дьявол, как всегда, в деталях

CS>>У меня используется несколько иная схема — традиционный caching. Быстрее работает в моем случае.


CS>>Приведенный список 10 ситуаций (особенно последняя тема) сводят на нет возможные способы редуцирования O(N*M*D)

CS>>Например сайты семейства wikipedia в принципе не оптимизируемы из-за своей системы стилей.

Д>тем не менее, мне кажется, что случай когда каждый элемент на странице имеет отличающийся от других стиль — это исключение, а не правило


Собственно нахождение однотипных элементов это и есть задача style resolving.

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

Например есть селекторы

div:nth-child(odd) p:nth-child(even) {}
div:nth-child(even) p:nth-child(odd) {}

На какие "кучки" будем раскладывать элементы?
А вот это например:
div:nth-child(2)
div:nth-child(3)
div:nth-child(4)
...
?

Итого разобравшись в предмете попытаемся еще раз осмыслить следующее:
"В любом случае, сложность O(N * M * D) — это реально только для самой примитивной лобовой реализации "
Есть еще непримитивные варианты?
Re[10]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 21.11.05 08:49
Оценка:
Здравствуйте, Дарней, Вы писали:

S>>Я не специалист, но геморрой тут заметен невооруженным взглядом.


Д>геморрой конечно немаленький, но по моему впечатлению, его происхождение — в основном в сложности самой системы применения правил CSS. А от этого в любом случае никуда не деться


А чего ж там сложного? Правила просты и детерменированы.
В том то все и дело. Набор атомарно простых операций порождает серьезную вычислительную задачу.

Возвращаясь к предмету разговора:

Pavel Dvorkin:

А кстати, какой клиент это все потянет ? Netscape 3.0 на 16 Мб под Windows 95 потянет ? Тянул же он раньше...


ну дык не тянет он собственно...
Re[8]: Об эффективности - с другой стороны
От: minorlogic Украина  
Дата: 21.11.05 09:25
Оценка:
У меня кстати и не было мысли что речь может идти о кодовой оптимизации. Это даже не рутинная работа , это просто происходит на уровне автомата.

То есть все равно что набирать правильно операторы языка. Если говорить про "оптимизацию" как переписыванеи существующего кода напрмиер под MMX и т.д. то это действительно скучновато.

Кстати говоря я с таким сталкивался , меня один специалист учил как "оптимизировать" это запустит VTune , и те функции которые на самом верху переписать на ассемблере. Возможно , что кто то из учасниковв дискусии думает примерно также ? Если так , то официально заявляю , я говорю о совершенно другом. Максим отлично продемонстрировал . Что можно до скончания века оптимизировать индуччкий код , на уровне кода , но если не поменять алгоритм , то ничего не изменится.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[9]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 09:37
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Кстати говоря я с таким сталкивался , меня один специалист учил как "оптимизировать" это запустит VTune , и те функции которые на самом верху переписать на ассемблере. Возможно , что кто то из учасниковв дискусии думает примерно также ? Если так , то официально заявляю , я говорю о совершенно другом. Максим отлично продемонстрировал . Что можно до скончания века оптимизировать индуччкий код , на уровне кода , но если не поменять алгоритм , то ничего не изменится.


Может измениться. Вот у меня был случай -- в одном месте, которое вызывалось слишком часто, было два обращения к new. В многопоточном приложении, где каждый new -- это очень дорого. Я переписал это место так, что new вызывался только один раз. В результате большой кусок кода заработал в два раза быстрее и перестал быть узким местом. Еще больших результатов можно было бы достичь, конечно, изменением алгоритма (там даже не алгоритм а целая идеология бы поменялась), но затраты на такие изменения алгоритма были бы не соизмеримы с полученным выигрышем, а сложность решения серьезно бы увеличилась.

Так что элементарную эффективность на уровне кода так же нельзя сбрасывать со счетов.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.11.05 09:53
Оценка:
Здравствуйте, Дарней, Вы писали:
Д>можно закэшировать полученную плоскую CSS (если исходить из предположения, что CSS не будет меняться при каждой загрузке страницы )
Гм. Я, может быть, страшно туплю, но этот кэш вообще будет не очень применим. В том смысле, что следующая показанная страница, скорее всего будет содержать другой HTML. И для него придется решать задачу планаризации заново и с нуля. А ситуация типа "если мы смотрим гарантированно тот же контент с гарантированно тем же CSS" — имхо конь в вакууме.
Д>геморрой конечно немаленький, но по моему впечатлению, его происхождение — в основном в сложности самой системы применения правил CSS. А от этого в любом случае никуда не деться
Ну? Так тебя вроде бы в этом и убеждают. Что рендеринг HTML c учетом CSS — дорогая задача.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[2]: Что такое оптимизация на примере.
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 09:58
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>По жизни уже давным давно повторяю как мантру

M>"оптимизируйте алгоритмы а не код" нет неправильно , правильно так "ОПТИМИЗИРУЙТЕ АЛГОРИТМЫ А НЕ КОД !!!!!!"

M>Мне кажется что и Максим , когда говорит про "оптимизацию" совсем не имеет ввиду причесывание кода.


M>К сожалению в приведенном примере , для нахождения такого очевидного решения , пришлось ПОНЯТЬ что именно делает весь код в целом, а для этого надо знать и предметную область и многое другое.


К этому многому другому нужно обязательно еще и такое условие:

M>Анализ кода показал , что его разработчики знали об этой проблеме и уже постарались выжать из этого все что можно .

т.е., наличие настолько эффективного кода, который уже бесполезно вылизывать. А то может оказаться, к пример, что алгоритму требуется удалить пробелы из C-шного кода, а делается это так:
for(i = 0; i < strlen(str); i++)
{
   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
}

(взято из Re[7]: Об эффективности &mdash; с другой стороны
Автор: McSeem2
Дата: 20.11.05
).
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[3]: Что такое оптимизация на примере.
От: minorlogic Украина  
Дата: 21.11.05 10:01
Оценка:
Здравствуйте, eao197, Вы писали:

E>К этому многому другому нужно обязательно еще и такое условие:

E>

M>>Анализ кода показал , что его разработчики знали об этой проблеме и уже постарались выжать из этого все что можно .

E>т.е., наличие настолько эффективного кода, который уже бесполезно вылизывать.

Нет не безполезно , там было куда вылизывать , но было видно : "разработчики знали, что это узкое место".
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[5]: Что такое оптимизация на примере.
От: minorlogic Украина  
Дата: 21.11.05 10:19
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, minorlogic, Вы писали:


E>>>т.е., наличие настолько эффективного кода, который уже бесполезно вылизывать.


M>>Нет не безполезно , там было куда вылизывать , но было видно : "разработчики знали, что это узкое место".


E>Но ведь затраты на оптимизацию достаточно хорошего кода не окупились бы, т.е. код был достаточно хорош. Что уже не мало.

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

Я не помню когда последний раз у меня такое было , но я конечно ивесщами специфичными занимаюсь.
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[8]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 10:59
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>"Выжимание скорости" бывает разым. Вот простейшая иллюстрация — надо удалить все пробелы из Сишной строки.

MS>Реализация раз, индуссого типа:
MS>
MS>for(i = 0; i < strlen(str); i++)
MS>{
MS>   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
MS>}
MS>

Индус — гений. Такое придумать жутко умная голова нужна.
MS>Знаешь, какова сложность данного цикла? O(N^3).
Учитывая особенности функции strcpy — меньше. Правда картины не меняет. Но все равно круто.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 21.11.05 11:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Гм. Я, может быть, страшно туплю, но этот кэш вообще будет не очень применим. В том смысле, что следующая показанная страница, скорее всего будет содержать другой HTML. И для него придется решать задачу планаризации заново и с нуля. А ситуация типа "если мы смотрим гарантированно тот же контент с гарантированно тем же CSS" — имхо конь в вакууме.


мне все-таки кажется, что предаврительно обработанные части CSS можно использовать повторно. Хотя я могу и ошибаться

S>Ну? Так тебя вроде бы в этом и убеждают. Что рендеринг HTML c учетом CSS — дорогая задача.


согласен, что сложная. Может быть даже действительно O(N*M*D), если взять относительно небольшой документ и большую и сложную таблицу стилей. Но это только как частный случай.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: Всего пара слов: деньги решают все (+)
От: 0rc Украина  
Дата: 21.11.05 11:34
Оценка:
Здравствуйте, gwg-605, Вы писали:

Это что-то новое. Вы хотели сказать: "кадры решают все"?
... << RSDN@Home 1.2.0 alpha rev. 619>>
Re[9]: Об эффективности - с другой стороны
От: Pyromancer  
Дата: 21.11.05 12:04
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Здравствуйте, McSeem2, Вы писали:


MS>>"Выжимание скорости" бывает разым. Вот простейшая иллюстрация — надо удалить все пробелы из Сишной строки.

MS>>Реализация раз, индуссого типа:
MS>>
MS>>for(i = 0; i < strlen(str); i++)
MS>>{
MS>>   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
MS>>}
MS>>

GZ>Индус — гений. Такое придумать жутко умная голова нужна.
MS>>Знаешь, какова сложность данного цикла? O(N^3).
GZ>Учитывая особенности функции strcpy — меньше. Правда картины не меняет. Но все равно круто.

GZ>С уважением, Gleb.


ну можно и за N это сделать и без дополнительной памяти даже, указателей прикрутить, хорошенько скрыть смысл и устроить утечку памяти, чтоб боялись. А какой-нибудь библиотечной или,упаси бог,стандартной функцией пользоваться это не по-нашему
Re[12]: Об эффективности - с другой стороны
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.11.05 12:13
Оценка:
Здравствуйте, Дарней, Вы писали:
Д>согласен, что сложная. Может быть даже действительно O(N*M*D), если взять относительно небольшой документ и большую и сложную таблицу стилей. Но это только как частный случай.
Относительно небольшой документ — это всего лишь малое N. Несложный документ — небольшое D. Сложная таблица стилей — это большое M.
Понятно, что глядя в документ мы можем сказать, что для многих элементов применяется ровно один и тот же набор стилей. Я имею в виду — глядя глазами. Построить алгоритм, который сможет этим воспользоваться, в целях перехода напрмер от O(n*m*d) к хотя бы O(log(n)*m*d) — весьма нетривиальная задача.
1.1.4 stable rev. 510
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[9]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 21.11.05 13:08
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Индус — гений. Такое придумать жутко умная голова нужна.


Нет, Глеб. Это нормальный код, который напишет любой начинающий программист. Он уже понял, как писать программы и работать со строками. И если забыть про эффективность — в этом коде ничего плохого нет. Он, кстати, понятнее и логичнее.
With best regards
Pavel Dvorkin
Re[4]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 21.11.05 13:27
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Строить ввысь — это как раз и есть возводить здание из надежых и эффективных конструкций, устроенное примерно как цепочка неопровержимых математических доказательств. Это то, к чему я и стремлюсь (но основная доля моей работы — это пока что рутина, тем не менее).




Очень хорошая мысль.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[10]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 13:32
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, GlebZ, Вы писали:


GZ>>Индус — гений. Такое придумать жутко умная голова нужна.


PD>Нет, Глеб. Это нормальный код, который напишет любой начинающий программист. Он уже понял, как писать программы и работать со строками. И если забыть про эффективность — в этом коде ничего плохого нет. Он, кстати, понятнее и логичнее.

Maybe. Я чаще встречаюсь с незнанием подобных функций. И в очень извращенной форме. Благодаря плюсикам и минусикам получается такой ребус, что распутав его и поняв что-же здесь делается, чувствуешь себя героем.

С уважением, Gleb.
ЗЫ Какой негодяй написал что while(*p++==*p1++); нормальный способ копирования строки(хотя знаю кто , но IMHO — это ошибка)? А самое главное сказал что это нормально.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 21.11.05 13:43
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Maybe. Я чаще встречаюсь с незнанием подобных функций. И в очень извращенной форме.


Не без этого. Мне порой приходится студентам 3 курса объяснять. что цикл по символам при копировании строки с записью нуля в конце не есть хорошо, если есть strcpy.

GZ>ЗЫ Какой негодяй написал что while(*p++==*p1++); нормальный способ копирования строки


K&R


>(хотя знаю кто , но IMHO — это ошибка)?


Ты хочешь подхватить знамя дискуссии моей с Синклером на предмет того, есть ли у строки длина ?

>А самое главное сказал что это нормально.


В С — абсолютно нормально.
With best regards
Pavel Dvorkin
Re[3]: Об эффективности - с другой стороны
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 21.11.05 13:55
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Еще один пример: cascading style sheets и их computational complexity.


CS>Смотри, для документа с N DOM элементами, M стилями и D — средняя глубина дерерва

CS>задача нахождения стиля для каждого элемента это O( N * M * D ). Могу тебе сказать сразу — без тщательной прорабоки алгоритмов, просто так в лоб эту задачу не решить. Кстати я например использую один трюк который на managed в принципе не реализуем. Но это к слову.

Это получается "множественная диспетчеризация". Интересно, оно в языках, её поддерживающих, как то оптимизируется?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[13]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 21.11.05 13:57
Оценка:
Здравствуйте, minorlogic, Вы писали:

E>>>>Так что элементарную эффективность на уровне кода так же нельзя сбрасывать со счетов.

M>>>Со временем это работает на автомате.

E>>При всем уважении, не могу согласиться. Слишком много факторов сейчас влияют на разработчика, чтобы можно было предугадать, где произойдет потеря производительности.


M>Могу ответить прямо если бы я так думал , то был бы уже давно уволен.


А мне профайлер помогает
Так что я не думаю, я узнаю, где же я ошибся.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Всего пара слов: деньги решают все (+)
От: Павел Кузнецов  
Дата: 21.11.05 14:16
Оценка:
gwg-605,

> необходимое железо + стоимость разработки + стоимость поддержки = затраты. Минимум затрат большая прибыль.


Из Вашего уравнения выпали несколько существенных составляющих, начиная с качества, функциональности и usability получившегося продукта.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[9]: Об эффективности - с другой стороны
От: Павел Кузнецов  
Дата: 21.11.05 15:11
Оценка:
GlebZ,

> MS> Знаешь, какова сложность данного цикла? O(N^3).


> Учитывая особенности функции strcpy — меньше.


Уж не о том ли ты, что strcpy может копировать словами, а не байтами? Если да, то на оценку вычислительной сложности это никак не влияет, т.к. при определении O(...) константные множители игнорируются:
O( N * N * (N/4) ) == O( 1/4 * N^3 ) == O( N^3 )
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[10]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 15:59
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> Учитывая особенности функции strcpy — меньше.

ПК>Уж не о том ли ты, что strcpy может копировать словами, а не байтами? Если да, то на оценку вычислительной сложности это никак не влияет, т.к. при определении O(...) константные множители игнорируются:
ПК>
ПК>O( N * N * (N/4) ) == O( 1/4 * N^3 ) == O( N^3 )
ПК>

Грешен, ляпнул не разобрамшись. Почему делить на 4?

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[11]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 21.11.05 17:00
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Сейчас наставят минусов, но все-таки признаюсь.


А плюсик можно поствить?

MS>>Кто познал сущность О-нотации, тот истинно крут! Какая такая "особенность strcpy" может убавить O?

GZ>Честно говоря такие шняги лучше мерять от и до. Это будет примерно O(N^2)<=x<=O(N^3). В зависимости от кол-ва пробелов.
GZ>Хотя O(N^2) по сравнению с O(N) — при большом N уже показания к сипуке.

Я честно сказать тоже не понимаю О-нотацию. Но осмелюсь утверждать, что понимаю в ней хотя бы что-то. Это действительно сильное колдунство. Например, если в строке не более одного, не более тысячи, не более миллиарда пробелов, то формальная сложность алгоритма остается O(N^2) вне зависимости от фактического количества — ибо есть ограничение в виде некой константы. Но как только мы говорим, что каждый десятый символ — пробел, то сложность цикла сразу становится O(N^3). Можно даже сказать, что каждый миллиардный символ — пробел и все равно это будет N^3. Хотя фактически и практически никакой разницы нет.

GZ>Если бы это было в месте в котором я был бы уверен в том, что количество строк 2-3 и запускается только при загрузке, то может быть я бы пропустил такой код. Гадость но не смертельная. Даже под гнетом того, что код может перекочевать. Если бы в чем-то повторяющемся, или в месте где влияет на нагрузку работы — сипука.


Я и не утверждаю, что это плохо. Есть случаи, где такое вполне допустимо. Но!!! Надо четко оговаривать ограничения — типа не более 1000 символов. Или даже — "я написал лажу, вы имеете право ее использовать". Но таких признаний никто не любит — и в этом заключается весь корень зла. Типа одни индусы подразумевают, что "у нас супер-ультра-функция", а другие индусы, не подозревая о неявных ограничениях, используют эту функцию для 5000 символов. Получается полная вешалка.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Об эффективности - с другой стороны
От: Павел Кузнецов  
Дата: 21.11.05 17:33
Оценка:
GlebZ,

>>> Учитывая особенности функции strcpy — меньше.


> ПК>Уж не о том ли ты, что strcpy может копировать словами, а не байтами? Если да, то на оценку вычислительной сложности это никак не влияет, т.к. при определении O(...) константные множители игнорируются:


> ПК>
> ПК>O( N * N * (N/4) ) == O( 1/4 * N^3 ) == O( N^3 )
> ПК>


> Грешен, ляпнул не разобрамшись. Почему делить на 4?


Ну, если бы речь шла о копировании словами вместо копирования байтами, то на 32-битной машине операций было бы в 4 раза меньше... Что на вычисление O(...) все равно не влияло бы
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[12]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 21.11.05 17:55
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Ну, если бы речь шла о копировании словами вместо копирования байтами, то на 32-битной машине операций было бы в 4 раза меньше... Что на вычисление O(...) все равно не влияло бы

Я то думал что ты каким-то неизвестным способом учитываешь что strcpy вызывается не всегда. Уже записал тебя в непризнанные гении. А тут такой облом. Такие вещи учитывать себя не любить. Со сменой проца менять аксиоматику рассчетов? А еще, ты не учел что шина 64битная и у тебя идет копирование по 8 байтам в кэш и во многом каждая вторая операция — профанация.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[5]: Об эффективности - с другой стороны
От: MShura  
Дата: 21.11.05 21:15
Оценка:
E>Тогда ответь мне на такой вопрос: для какой-то задачи нужна машина класса P-200 и 128Mb памяти. Где ее взять?

Например вот современная машина с 32 Мб памяти под управлением Linux.
Мы писали для неё софт.
Работает отлично. Правда пришлось самим искать для неё C++ компилятор...

http://www1.linksys.com/products/product.asp?prid=640&amp;scid=43
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 22.11.05 02:32
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Давай мы с тобой не будем спорить? Ибо "Если ты споришь с идиотом, вероятно, то же самое делает и он". Это ни в коем случае не оскорбление, наоборот — это некий само-сарказм. Чем больше мы с тобой разговариваем, тем большим идиотом я себя чувствую.



ок, давай завязывать.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[13]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 22.11.05 02:32
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>"В любом случае, сложность O(N * M * D) — это реально только для самой примитивной лобовой реализации "

CS>Есть еще непримитивные варианты?

чтобы выдавать более детализированные варианты, надо с головой лезть в проблему
но чутье мне подсказывает, что вариант с кластеризацией однотипных элементов должен работать. Пусть идею и придется сильно усложнить.
другой вопрос, что для случаев со сложной таблицей стилей и относительно маленьких документов это может просто не иметь смысла
так что полностью с тобой согласен — задница еще та, оказывается
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 22.11.05 02:34
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Павел, если ты учишь студентов, то наилучшим объяснением О-нотации будет попросить их представить, как эта "байда" будет работать при ста миллиардах чего-то там на входе. Ну или когда студент приносит сомнительный код не зачет, попросить его сделать оценку времени выполнения для 100 миллиардов. У меня есть сильное опасение, что 90% так называемых "программистов" вообще не имеют предствления, что такое О-нотация. А уж НП-полность (Nondeterministic Polynomial Completeness) — это и для меня загадка, примерно как квантовая механика. И чем дальше копаешь, тем запутанней все это становится.


Я с этим всем согласен, но одно "но".

O(?) — это верно, конечно, но все же не надо забывать, что это лишь ассимптотическая зависимость. В реальной обстановке может не быть разницы между AN и BNLogN, просто из-за того, что A намного больше B, а N небольшие (Курица не птица, логарифм не бесконечность . Более того, возьмем два линейных алгоритма, но первый однопроходной, а второй двухпроходной. Время работы отличается, будем считать , в 2 раза. Если это "при ста миллиардах чего-то там на входе", то можем получить 1 час и 2 часа соответственно, хотя O здесь один и тот же.
With best regards
Pavel Dvorkin
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 22.11.05 02:41
Оценка:
Здравствуйте, McSeem2, Вы писали:

эх, опять спор фиг знает куда ушел

MS>Надо лишь раз почувствовать себя уникальным.


с этим никаких проблем нет идей море, аж в голове тесно становится.
Другой вопрос, что времени на их реализацию мало.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[9]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 22.11.05 03:12
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

IT>>Это называется извратить чьи-либо слова и сделать на таком извращении далеко идущие выводы.


PD>Это называется голословным утверждением. В чем заключается извращение слов ?


Твоё? Особенно выделенное.

Я, конечно, распространил чтение из файла на все другое, но саму тенденцию твоего письма ИМХО я передал верно.

... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[14]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 22.11.05 03:50
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Это чисто отмазка. Если действительно есть некий зуд, то ты этот "гондурас" просто не можешь не расчесывать. А если типа "идей море", но просто "времени нет", это значит что и идей-то собственно никаких нет. Таково мое мировосприятие.


Это что, наезд что ли?
я и так работаю над одной самой многообещающей идеей. Другой вопрос, что работы там море, и моих сил может просто не хватить. А привлекать кого-то еще я пока не хочу, потому что пока нет устоявшейся основы — проект станет напоминать известную басню про рака, лебедя и щуку.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[15]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 04:56
Оценка:
Д>я и так работаю над одной самой многообещающей идеей. Другой вопрос, что работы там море, и моих сил может просто не хватить. А привлекать кого-то еще я пока не хочу, потому что пока нет устоявшейся основы — проект станет напоминать известную басню про рака, лебедя и щуку.

Искренне желаю всяческих успехов!
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[10]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 22.11.05 05:54
Оценка:
Здравствуйте, IT, Вы писали:

IT>Твоё? Особенно выделенное.


IT>

IT>Я, конечно, распространил чтение из файла на все другое, но саму тенденцию твоего письма ИМХО я передал верно.


Мое. Я же честно признался, что именно это сделал. ИМХО если человек на некотором примере пытается продемонстрировать свои соображения, он это делает для того, чтобы продемонстрировать свою идею.

Напомню еще раз твой постинг

>Павел, знаешь в чём твоя ошибка? Особенно в терминах цели vs. средсва? Нет, ты не путаешь цели со средствами, ты просто навязываешь свои цели и приоритеты другим. Ну нет у меня задач, требующих молниеносного чтения данных из файла.


Если ты считаешь, что моя ошибка в том. что я навязываю молниеносное чтение из файла и только это, то все это не по адресу. Я не инициировал дискуссию о чтении из файла, а просто высказался, когда можно что использовать. Я готов в этом случае снять все свои замечания в этой дискуссии с тобой, только, пожалуйста, подтверди, что , говоря о моей ошибке, ты ничего, кроме чтения из файла не имеешь в виду.

Если же моя (по твоему мнению) ошибка лежит в более общем плане — почему я не мог распространить это пресловутое чтение на другие аналогичные ситуации ?
With best regards
Pavel Dvorkin
Re[3]: Всего пара слов: деньги решают все (+)
От: Nickolay Ch  
Дата: 22.11.05 08:21
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>gwg-605,


>> необходимое железо + стоимость разработки + стоимость поддержки = затраты. Минимум затрат большая прибыль.


ПК>Из Вашего уравнения выпали несколько существенных составляющих, начиная с качества, функциональности и usability получившегося продукта.



Они входят на уровень пониже:
функциональность, качество входят в стоимость разработки. Другое дело, что от них зависит прибыль поэтому ищется необходимый баланс.

А вообще с утверждением полностью согласен: деньги решают все.
Re[15]: Об эффективности - с другой стороны
От: c-smile Канада http://terrainformatica.com
Дата: 22.11.05 08:24
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, c-smile, Вы писали:

CS>>Угу. я второй месяц пытаюсь найти автора придумавшего вот это:
S>Самое забавное, имхо, — в том, что эти грабли уже давно обнаружены и документированы. Я еще в 1991 году где-то читал насчет того, что большинство инциатив комитетов пошли в девнулл, а то, что налабали на коленке практики имеет тенденцию жить.

S>У меня перед глазами ODMG OQL, где столь же небрежным росчерком пера запретили практически любые оптимизации — до сих пор нет полной реализации. И, скорее всего, никогда не будет.

S>Вот теперь вы, два опытных человека, рассказываете про то, какие благоглупости выходят из недр W3C. И ведь все из благих побуждений! Ну разве не здорово иметь возможность воткнуть в документ какой-нибудь <hr id="oops">, и всё что после него, станет, к примеру, синим?

Здорово конечно, только не все а то что на этом уровне.
Но к сожалению еще пару тройку таких фич и про CSS можно забыть.

Возможны ли варианты? В общем-то да. CSS++ или CSS c классами:

Например конструкция:

div#myid {
color: ...;
background: ...;
[
p { ... }
h1 { ... }
]
}

создает локальный пул стилей для myid. Соответсвенно все элементы вне #myid не затрагиваются данными стилями
и соответсвенно не сканируются на предмет соответствия.
Re[7]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 22.11.05 10:58
Оценка:
Здравствуйте, Cyberax, Вы писали:


C>Уже нет Начиная с первого GeForce на чипах появился GPU — это такой

C>быстрый векторный CPU, заточеный специально под графику. Он умеет
C>перемножать матрицы, рассчитывать тени и т.п.

В аппаратное перемножение матриц фиксированного объема — поверю (скажем, 4х4), в обсчет теней — нет. На микропрограммах все. Наверняка на загружаемых и компилируемых. В общем, та же классика ПО.
Re[12]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 22.11.05 11:06
Оценка:
Здравствуйте, McSeem2, Вы писали:



Когда-то паял овердрайвы и дисторшены... аналогичный кайф (правда, таких больших финансов не заработал, но +3 стипендии — тоже деньги).
Re[11]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 22.11.05 11:33
Оценка:
Здравствуйте, GlebZ, Вы писали:


GZ>Сейчас наставят минусов, но все-таки признаюсь.

GZ>Если бы это было в месте в котором я был бы уверен в том, что количество строк 2-3 и запускается только при загрузке, то может быть я бы пропустил такой код. Гадость но не смертельная. Даже под гнетом того, что код может перекочевать. Если бы в чем-то повторяющемся, или в месте где влияет на нагрузку работы — сипука.

Знаешь, в любой задаче обычно существует одно само наилучшее решение. Но обычно искать это решение сильно дорого. И тогда в действие вступают стратегии. Стратегии гарантируют некое решение при том, что у тебя нет необходимости задумываться на 100 шагов вперед перед каждым ходом. Хорошей стратегией для С++ является STL.
Re[7]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 22.11.05 11:44
Оценка:
Здравствуйте, mrozov, Вы писали:

M>Здравствуйте, vdimas, Вы писали:


V>>Разница во взаимозаменяемости. Первые легко могут заменить вторых. Наоборот — никак.

M>Да вот ничего подобного. Ничего общего со взаимозаменяемостью нет. Разные специализации абсолютно, разные навыки.

Навыки — вещь не абсолютная, и скорость их накопления имеет значение. Уточню, первые легко овладевают навыками сторых. Вторые вообще не в состоянии овладеть навыками первых.

V>>Первых — днем с огнем сейчас ищи, вторых — как саранчи,

M>В соответствии со спросом, в общем-то.

Нет, спрос на высококлассных спецов не удовлетворяется избытком низкоклассных.
Re[15]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 22.11.05 12:15
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Здравствуйте, McSeem2, Вы писали:


MS>>Это чисто отмазка. Если действительно есть некий зуд, то ты этот "гондурас" просто не можешь не расчесывать. А если типа "идей море", но просто "времени нет", это значит что и идей-то собственно никаких нет. Таково мое мировосприятие.


Д>Это что, наезд что ли?

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

Успехов.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[6]: Об эффективности - с другой стороны
От: Шахтер Интернет  
Дата: 22.11.05 12:19
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>Здравствуйте, Шахтер, Вы писали:


Ш>>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>>Здравствуйте, Шахтер, Вы писали:


Ш>>>>Нет там никакой сложности -- подписка на уведомление об изменении каталога.


PD>>>Я полагаю, что minorlogic имел в виду, как это в системе организовано, т.е как она шлет эти уведомления. Это несколько сложнее, задействуются объекты ядра (файл), а для этого нужно, чтобы был диспетчер объектов и т.д — в общем, ядро NT.


Ш>>Опять же -- в чем сложность? Список подписчиков на событие реализовать?


M>Нет , это я хотел продемонстрировать куда кушаются много ресурсов , одна такая мелочь , вторая , третья ... 2000ная и т.д.


Они на самом деле уходят не в ядро.
Что в виндах, что в линюхе, ядро достаточно маленькое быстренькое и компактное.
А вот то что сверху...
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[11]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 22.11.05 12:28
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Если ты считаешь, что моя ошибка в том. что я навязываю молниеносное чтение из файла и только это, то все это не по адресу. Я не инициировал дискуссию о чтении из файла, а просто высказался, когда можно что использовать. Я готов в этом случае снять все свои замечания в этой дискуссии с тобой, только, пожалуйста, подтверди, что , говоря о моей ошибке, ты ничего, кроме чтения из файла не имеешь в виду.


Говоря о твоей ошибке я вполне чётко указал в чём она. Она в навязывании твоих приоритетов другим. Молниеносное чтение из файла очень показательно в качестве примера.
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[12]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 22.11.05 13:11
Оценка:
Здравствуйте, IT, Вы писали:

IT>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Если ты считаешь, что моя ошибка в том. что я навязываю молниеносное чтение из файла и только это, то все это не по адресу. Я не инициировал дискуссию о чтении из файла, а просто высказался, когда можно что использовать. Я готов в этом случае снять все свои замечания в этой дискуссии с тобой, только, пожалуйста, подтверди, что , говоря о моей ошибке, ты ничего, кроме чтения из файла не имеешь в виду.


IT>Говоря о твоей ошибке я вполне чётко указал в чём она. Она в навязывании твоих приоритетов другим.


Прекрасно, а в чем заключаются те приоритеты, которые я "навязываю" (кстати, почему именно навязываю — я им начальство, что ли ?). В борьбе за эффективность ? Но тогда

"Молниеносное чтение из файла очень показательно в качестве примера."

А это и есть борьба за эффективность, которая тебе не нужна, потому что

"нет у меня задач, требующих молниеносного чтения данных из файла."

Или мои приоритеты в чем-то другом заключаются ? Тогда в чем ?
With best regards
Pavel Dvorkin
Re[8]: Об эффективности - с другой стороны
От: FR  
Дата: 22.11.05 13:32
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, Cyberax, Вы писали:



C>>Уже нет Начиная с первого GeForce на чипах появился GPU — это такой

C>>быстрый векторный CPU, заточеный специально под графику. Он умеет
C>>перемножать матрицы, рассчитывать тени и т.п.

V>В аппаратное перемножение матриц фиксированного объема — поверю (скажем, 4х4), в обсчет теней — нет. На микропрограммах все. Наверняка на загружаемых и компилируемых. В общем, та же классика ПО.


А какая разница микропрограмное или нет?
Эти микропрограммы(шейдеры) сейчас не зашиваются, а пишутся прикладным программистом, при этом уровень распаралеливания такой что даже на далеко не топовых картах скорость расчетов на порядок обгоняет CPU
Re[9]: Об эффективности - с другой стороны
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 14:59
Оценка:
Здравствуйте, Костя Ещенко, Вы писали:

КЕ>Не хочу занудстовать, но сложность "индусского" алгоритма — O(N^2). Похоже уважаемые участники обсуждения ошиблись по невнимательности.


Так оно и есть. Это я ошибся и всех ввел в заблужение. Публично посыпаю голову пеплом...
Пояснение:
for(i = 0; i < strlen(str); i++)

Дает O(N^2)

for(i = 0; i < len; i++)
{
   if(str[i] == ' ') { strcpy(str + i, str + i + 1); i--; }
}

Дает тоже O(N^2)

Но в сумме, O(N^2) + O(N^2) это тоже O(N^2). Я же говорю, что О-нотация это очень сильное колдунство.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: попробую еще раз объяснить
От: McSeem2 США http://www.antigrain.com
Дата: 22.11.05 15:47
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>- А ли можно сделать так, чтобы (...)?


AB>Ну что ответит программер? Почешет репу, сделает хмурое лицо и со словами "ну... в принципе-то можно все, что угодно..." начнет нести "ахинею" по поводу NP полных задач... Поскольку шеф не понимал бормотания программера и когда просил сделать вон тот отчет, и когда просил сделать то и се, но всегда ответ программера начинался со слов "ну... в принципе-то можно все, что угодно...", это для него ответ "да" — попробуйте теперь ему объяснить, что "вы устали, что у вас голова болит"...


Это, кстати, не такой простой вопрос как кажется. Начальник имеет право не знать, какие задачи решить реально, а какие — нет. И объяснить, что задача является нерешаемой бывает очень непросто. Я бы сказал, что для этого требуется обладать особым искусством, типа популяризаторства (не путать с популизаторством!) Умные фразы, типа "эта задача является НП-полной" — давить. По-нормальному, надо суметь человеку продемонстрировать хоть на пальцах — сложность задачи того же комивояджера. И вот когда у него возникнут короткие гудки в глазах от осознания (это сразу же становится видно), вот тогда можно сказать, что задачи такого класса называются НП-полными. Это если человек интересуется. Но он так же может и спросить прямо: "короче — ты это можешь сделать или нет?" И на это тоже бывает непросто дать ответ. Иногда самый правдивый ответ — "не знаю, надо пробовать". "А когда будешь знать?" — "Может завтра, может через месяц, это дело непростое". Трагедия в том, что такой правдивый ответ является провальным с точки зрения коммерции. Это и есть причина того, что люди начинают нести ахинею по поводу НП-полности.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Об эффективности - с другой стороны
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.11.05 16:45
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Разница во взаимозаменяемости. Первые легко могут заменить вторых. Наоборот — никак.


Вероятно, первые так же быстро осваивают и художественное мастерство, которое скрывается под словом "дизайн", так же быстро осваивают навыки психологии www-user-а и т.д.? Думаю, что нет, по крайней мере, мне переход на более "высокий" уровень дается с большим трудом. Железяку запрограммить — да, создать хоумпагу чуть выше уровня нежели "я и моя собака" — нет.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: попробую еще раз объяснить
От: Anton Batenev Россия https://github.com/abbat
Дата: 22.11.05 16:45
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>спросить прямо: "короче — ты это можешь сделать или нет?" И на это тоже бывает непросто дать ответ. Иногда самый правдивый ответ — "не знаю, надо пробовать". "А когда будешь знать?" — "Может завтра, может через месяц, это дело непростое".


— Мне нужно сейчас <точка>.

MS> Трагедия в том, что такой правдивый ответ является провальным с точки зрения коммерции. Это и есть причина того, что люди начинают нести ахинею по поводу НП-полности.


Вот-вот. Я предпочитаю ответить "нет, это нельзя сделать" и выглядеть некоторое время дураком в ситуации, когда кто-то ответит "да! легко! мы это за неделю налабаем!".
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 22.11.05 17:35
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Навыки — вещь не абсолютная, и скорость их накопления имеет значение. Уточню, первые легко овладевают навыками сторых. Вторые вообще не в состоянии овладеть навыками первых.

Неверно. Если ты работаешь на верхнем уровне, это не обозначает отсутсвие мозгов.

V>>>Первых — днем с огнем сейчас ищи, вторых — как саранчи,

M>>В соответствии со спросом, в общем-то.
V>Нет, спрос на высококлассных спецов не удовлетворяется избытком низкоклассных.
Нет. Высококлассных спецов не сильно меньше чем низкоклассных, а может и больше. Не знаю. Но их меньше в свободном плавании на рынке труда в отличии от вторых.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 22.11.05 17:35
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS> Но для этого надо было иметь 12 струн. И я их поимел, причем с шестью колками (догадайся, как)!

Я приделывал еще шесть колков снизу.
MS>Но при этом оказалось, что советское социалистическое производство не производит нужных струн.
Это вполне компенсировалось тонкостью настройки. Даже на ленинградских струнах.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: попробую еще раз объяснить
От: GlebZ Россия  
Дата: 22.11.05 17:35
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Умные фразы, типа "эта задача является НП-полной" — давить.

Иногда не помешает. Но очень скромно.
MS>По-нормальному, надо суметь человеку продемонстрировать хоть на пальцах — сложность задачи того же комивояджера.
Не получится. Прежде чем успеешь объяснить, убегают на обед.
MS>Иногда самый правдивый ответ — "не знаю, надо пробовать". "А когда будешь знать?" — "Может завтра, может через месяц, это дело непростое". Трагедия в том, что такой правдивый ответ является провальным с точки зрения коммерции. Это и есть причина того, что люди начинают нести ахинею по поводу НП-полности.
Абсолютно верно.
Существует 3 ответа:
1. Да.
2. Будет стоить nnnnn.
При этом 2 вопрос подразделяется на два подвида
2.1 это значит да;
2.2 это значит нет, но вам теперь ясно почему
Это вполне понятный язык пользователю. И не стоит ему парить мозги подробностями.

С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[7]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 23.11.05 06:48
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Здравствуйте, vdimas, Вы писали:


V>>Разница во взаимозаменяемости. Первые легко могут заменить вторых. Наоборот — никак.


AB>Вероятно, первые так же быстро осваивают и художественное мастерство, которое скрывается под словом "дизайн", так же быстро осваивают навыки психологии www-user-а и т.д.?


Вообще-то "художественное мастерство, которое скрывается под словом "дизайн"" — ИМХО не дело программиста вообще. Для этого дизайнеры существуют. А для "навыки психологии www-user-а" есть специалисты по психологии, эргономике и т.д.

Я, например, ни за что красивую иконку не нарисую. Не умею, и все, нет у меня художественных способностей. Ну и что ?
With best regards
Pavel Dvorkin
Re[5]: Об эффективности - с другой стороны
От: _wqwa США  
Дата: 23.11.05 07:11
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:


PD>Я же ясно написал — резидент. Т.е. нечто , что сидит в ОП и по нажатию горячей клавиши этот самый каталог отображает. А в программы это встраивать бессмысленно — не может изменяться длина файла или список их, когда диалог выбора файла висит. Потому что ДОС — однопрограммная.


Ага, а вирусы тогда как работали? Точно такой же резидент, перехвативший таймер, например, мог делать все, что угодно.
Неужели?!
Кто здесь?!
Re[8]: Об эффективности - с другой стороны
От: Cyberax Марс  
Дата: 23.11.05 08:37
Оценка:
vdimas wrote:

> C>Уже нет Начиная с первого GeForce на чипах появился GPU — это такой

> C>быстрый векторный CPU, заточеный специально под графику. Он умеет
> C>перемножать матрицы, рассчитывать тени и т.п.
> В аппаратное перемножение матриц фиксированного объема — поверю
> (скажем, 4х4), в обсчет теней — нет.

А чего же так? Stencil buffer в аппаратуре не так уж сложно реализовать.

> На микропрограммах все. Наверняка на загружаемых и компилируемых. В

> общем, та же классика ПО.

На специально оптимизированом под них векторном процессоре.

--
С уважением,
Alex Besogonov (alexy@izh.com)
Posted via RSDN NNTP Server 1.9
Sapienti sat!
Re[9]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 23.11.05 09:10
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Неверно. Если ты работаешь на верхнем уровне, это не обозначает отсутсвие мозгов.


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

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

V>>Нет, спрос на высококлассных спецов не удовлетворяется избытком низкоклассных.

GZ>Нет. Высококлассных спецов не сильно меньше чем низкоклассных, а может и больше. Не знаю. Но их меньше в свободном плавании на рынке труда в отличии от вторых.

Я уже про рынок труда не говорю. Более-менее толковых на этом рынке нет вообще. Их просто переманивают, т.е. им так и не удается на этот рынок попасть. Недавно пытался набрать к себе еще десяток человек... В общем, ужасающее положение дел.

Остаются молодые. Но они в массе своей какие-то нелюбопытные. Плохо понимают даже основы.

Если более-менее любопытные — то испорчены предрассудками (вот оно, влияние тупого американского чтива). Долго не мог одному преттенденту растолковать, что т.н. "регулярные выражения" из Perl (довольно популярные почти везде сейчас) не являются таковыми в классическом понимани, т.к. позволяют описывать грамматики, выходящие за рамки регулярных. Почему я должен это объяснять, если он в институте проходил все это и сдавал десяток лаб по формальным грамматикам? Просто чел прочитал книжку о тех самых "регулярных выражениях" недавно, ну и баста... Требуется либо лоботомия, либо я даже не знаю что.
Re[9]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 23.11.05 09:12
Оценка:
Здравствуйте, FR, Вы писали:

FRFR>Эти микропрограммы(шейдеры) сейчас не зашиваются, а пишутся прикладным программистом, при этом уровень распаралеливания такой что даже на далеко не топовых картах скорость расчетов на порядок обгоняет CPU


Вот о выделенном я и говорил. А с остальным спорить не собираюсь. Понятное дело, что специализированный процессор обгонит в некоторых задачах процессор общего применения. Это ничего не меняет.
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 09:35
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Мы говорили об умельцах выжимать максимум. Так вот, овладение любой технологией/АПИ никогда не начинается снизу. Оно начинается сверху.


любая технология/АПИ — это всего лишь инструмент, средство для воплощения идей программиста в работающий код. Фактически, АПИ — это самое "дно" тех понятий, которыми оперирует любой программист. Над которым у любого хорошего программиста должно быть еще много-много уровней абстракции, с которыми он умеет работать.
Так что если человек умеет работать только с C#, например — это совсем не значит, что он "высокоуровневый специалист". На самом деле, это всего лишь неквалифицированный кодер.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[12]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 10:10
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Я немного не уловил это согласие или возражение. Если человек умеет работать только с C#, и плохо понимает, что за этим кроется, то, согласно моему видению, он действительно — неквалифицированный кодер.


это всё-таки возражение
если человек работает с C#, и даже хорошо знает, что за этим кроется — это все равно кодер, только чуть более квалифицированный
по настоящему квалифицированным программиста делает совсем не знание деталей того, как работает платформа
а что действительно делает программиста профи — это умение строить дома так, чтобы они не разваливались под своим весом. И чтобы для того, чтобы прибить на стену полку, не приходилось перестраивать фундамент, подпирать крышу дополнительными стойками и замазывать трещины в стенах
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[10]: Об эффективности - с другой стороны
От: GlebZ Россия  
Дата: 23.11.05 10:27
Оценка:
Здравствуйте, vdimas, Вы писали:

GZ>>Неверно. Если ты работаешь на верхнем уровне, это не обозначает отсутсвие мозгов.

V>Ну ты же как-то оказался на верхнем уровне. Сразу с него начал?
Ага. То что я делал в то время, тогда считалось верхним уровнем(нижним уровнем считался ассемблер). Но я очень специфично начинал.
Вооще же, считаю что степень разделения между верхним и нижним уровнем слишком преувеличена. Способность к моделированию нужна всегда — независимо от уровня.
V>Я поверю в эту сказку только для людей со сложной биографией и непрофильным образованием (физики, математики, экономисты, финансисты и т.д.)
Ага. Когда начинал у меня не было образования. Ты прямо медиум какой-то.

V>>>Нет, спрос на высококлассных спецов не удовлетворяется избытком низкоклассных.

GZ>>Нет. Высококлассных спецов не сильно меньше чем низкоклассных, а может и больше. Не знаю. Но их меньше в свободном плавании на рынке труда в отличии от вторых.
V>Я уже про рынок труда не говорю. Более-менее толковых на этом рынке нет вообще.
Был один недавно

V>Остаются молодые. Но они в массе своей какие-то нелюбопытные. Плохо понимают даже основы.

В большинстве своем — одна беседа в стрессовой ситуации недостаточно для такого вывода.
V>Если более-менее любопытные — то испорчены предрассудками (вот оно, влияние тупого американского чтива). Долго не мог одному преттенденту растолковать, что т.н. "регулярные выражения" из Perl (довольно популярные почти везде сейчас) не являются таковыми в классическом понимани, т.к. позволяют описывать грамматики, выходящие за рамки регулярных. Почему я должен это объяснять, если он в институте проходил все это и сдавал десяток лаб по формальным грамматикам? Просто чел прочитал книжку о тех самых "регулярных выражениях" недавно, ну и баста... Требуется либо лоботомия, либо я даже не знаю что.
Так уж это важно? Ну не клеются регуляры в классический конечный автомат с третьим подклассом грамматики Хомского. Значит это не подходит под термин теории. Зато то что на практике регуляры умеют больше. И в практике существует точно такой-же термин "регулярное выражение", который может обрабатывать скобки. Это ведь не важно. Важно что он интересуется, расширяет свой кругозор, а это более важно.
Вобщем, чтобы не повторяться. Re[9]: программист и матрица
Автор: GlebZ
Дата: 14.11.05


С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[13]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 23.11.05 12:22
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>по настоящему квалифицированным программиста делает совсем не знание деталей того, как работает платформа

Д>а что действительно делает программиста профи — это умение строить дома так, чтобы они не разваливались под своим весом. И чтобы для того, чтобы прибить на стену полку, не приходилось перестраивать фундамент, подпирать крышу дополнительными стойками и замазывать трещины в стенах

Блин, вот что значит встревать посередине
С этим как раз никто не спорит. Я считаю, что не может быть человек специалистом и при этом не разбираться досконально в сути того, чем оперирует. Т.е. мне явно кажется надуманной точка зрения, что бывают "высокоуровневые" спецы, которые слабо разбираются в подробностях современной выч. техники, осей и т.д.
Re[9]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 23.11.05 14:21
Оценка:
Здравствуйте, Anton Batenev, Вы писали:

AB>Ты что-то говорил про оторваность преподавателей от реалий бытия? Не в твой огорд камень, но мы все знаем как должно быть, но работают в этих условиях единицы. И, когда приходит заказчик, ковыряясь антеной от сотка в носу и говорит "Э..." — будь добр — выполни, если хочешь прокормить себя и семью.


Реалии я вполне понимаю, но что из того ? То. что нам приходится заниматься порой не своим делом — никак не оправдывает то, что оно все же не свое.

PD>>Я, например, ни за что красивую иконку не нарисую. Не умею, и все, нет у меня художественных способностей. Ну и что ?


AB>А то, что ты не можешь заменить гуйщика на требуемом уровне (т.е. речь шла о полной взаимозаменяемости) будь ты трижды гуру низкоуровневого программирования.


Ничего подобного, по крайней мере в данном конкретном случае. Я эти иконки нарисую бог знает как и продолжу разрваботку интерфейса. А потом банально их заменю, найдя того, кто мне их как следует нарисует.
With best regards
Pavel Dvorkin
Re[6]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 23.11.05 14:23
Оценка:
Здравствуйте, _wqwa, Вы писали:

_>Здравствуйте, Pavel Dvorkin, Вы писали:


_>Ага, а вирусы тогда как работали? Точно такой же резидент, перехвативший таймер, например, мог делать все, что угодно.


Вирусы либо заражали .com или .exe файлы и тогда становились их частью (делать при этом могли что угодно, но новый процесс от этого не появлялся), либо были теми же резидентами.
With best regards
Pavel Dvorkin
Re[10]: Об эффективности - с другой стороны
От: Anton Batenev Россия https://github.com/abbat
Дата: 23.11.05 15:41
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Реалии я вполне понимаю, но что из того ? То. что нам приходится заниматься порой не своим делом — никак не оправдывает то, что оно все же не свое.


Оправдывает — не оправдывает... Мне обычно как-то фиолетово. Если я могу сделать и заказчика этот уровень работы устраивает — я работаю, беру деньги и нии... Если же не могу, то на нет и суда нет.

PD>>>Я, например, ни за что красивую иконку не нарисую. Не умею, и все, нет у меня художественных способностей. Ну и что ?

AB>>А то, что ты не можешь заменить гуйщика на требуемом уровне (т.е. речь шла о полной взаимозаменяемости) будь ты трижды гуру низкоуровневого программирования.
PD>Ничего подобного, по крайней мере в данном конкретном случае. Я эти иконки нарисую бог знает как и продолжу разрваботку интерфейса. А потом банально их заменю, найдя того, кто мне их как следует нарисует.

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

З.Ы. складывается ощущение, что мы говорим об одном и том же...
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 17:27
Оценка:
Здравствуйте, vdimas, Вы писали:

V>С этим как раз никто не спорит. Я считаю, что не может быть человек специалистом и при этом не разбираться досконально в сути того, чем оперирует. Т.е. мне явно кажется надуманной точка зрения, что бывают "высокоуровневые" спецы, которые слабо разбираются в подробностях современной выч. техники, осей и т.д.


Смотря до каких подробностей
В любом случае, это необходимо, но отнюдь не достаточно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[16]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 17:27
Оценка:
Здравствуйте, eao197, Вы писали:

просто полный звиздец!
сегодня вечером опять копал интернет в поисках материалов на аналогичную тему, и нашел исследовательский проект, которым уже два года занимается Bell Labs (правда, результатов пока не видно). Детали конечно различаются, но основные идеи — просто один в один! (правда, у меня есть кое-какие идеи, до которых они не додумались )
Но что самое смешное — у них даже название почти в точности такое же! я даже не знаю, рыдать или смеяться
Написать им что ли, поинтересоваться, как дела идут?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[13]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 17:37
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>И судя по неким косвенным признакам, они тоже не понимают сущности О-нотации.


Надеюсь, это не на меня намек?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[14]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 17:37
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Угу. я второй месяц пытаюсь найти автора придумавшего вот это:


в общем, кривые руки таки имеют место быть
только находятся они в комитете мне всегда казалось, что CSS — относительно вменяемый стандарт
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[16]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 23.11.05 17:37
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Включая физиономию программиста ?


а это — в первую очередь
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[7]: Об эффективности - с другой стороны
От: _wqwa США  
Дата: 23.11.05 18:05
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Здравствуйте, _wqwa, Вы писали:


_>>Здравствуйте, Pavel Dvorkin, Вы писали:


_>>Ага, а вирусы тогда как работали? Точно такой же резидент, перехвативший таймер, например, мог делать все, что угодно.


PD>Вирусы либо заражали .com или .exe файлы и тогда становились их частью (делать при этом могли что угодно, но новый процесс от этого не появлялся), либо были теми же резидентами.


Вот и я о том же. Резиденты могли менять файлы в ДОСовой однопрограммной среде. Поэтому в общем случае задача отслеживания изменений в каталоге в ДОСе тоже могла стоять. Другое дело, что такие случаи были очень специфичными: либо программы работают в среде DesqView (DOS multitasker) либо какие-то резиденты шибко активные, либо вирусы шуршат. И не факт, что на такие случаи стоило заморачиваться.
Неужели?!
Кто здесь?!
Re[17]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 23.11.05 19:51
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>Но что самое смешное — у них даже название почти в точности такое же! я даже не знаю, рыдать или смеяться

Д>Написать им что ли, поинтересоваться, как дела идут?

Поинтересуйся.
Но свою разработку вряд ли стоит забрасывать. Рынок, он же большой. Так что, желаю удачи!

Тут буквально недавно похожая картинка нарисовалась: Re: Glan &mdash; система разработки клиент-серверных приложений
Автор: eao197
Дата: 09.11.05
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[18]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 24.11.05 02:54
Оценка:
Здравствуйте, eao197, Вы писали:

E>Но свою разработку вряд ли стоит забрасывать. Рынок, он же большой. Так что, желаю удачи!


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

E>Тут буквально недавно похожая картинка нарисовалась: Re: Glan &mdash; система разработки клиент-серверных приложений
Автор: eao197
Дата: 09.11.05


Действительно, забавные совпадения бывают.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[2]: Ха! Мы забыли про Mobile девайсы
От: Igor Sukhov  
Дата: 24.11.05 04:32
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>а не написать ли нам это на Compact Framework...


CS>

CS>Device used in Feasibility Study: DELL Axim X51v, 624 MHz, 64 MB RAM, 256 MB ROM, Intel PXH270 (typical high end device).

CS>DB: MS SQL Mobile Edition

CS>Insert 6000 records into DB:
CS> 1729 sec = 29 min
CS> (Device became irresponsive even to power button until the end of insert operation )

CS>Additional comment on power consumption:
CS> Insertion of 6000 contacts into database consumed 24% of the battery.


судя по коментариям, подобное поведение и требовалось получить.
* thriving in a production environment *
Re[3]: Ха! Мы забыли про Mobile девайсы
От: c-smile Канада http://terrainformatica.com
Дата: 24.11.05 17:26
Оценка:
Здравствуйте, Igor Sukhov, Вы писали:

IS>Здравствуйте, c-smile, Вы писали:


CS>>а не написать ли нам это на Compact Framework...


IS>судя по коментариям, подобное поведение и требовалось получить.


Не понял до конца замечания ну да ладно...

Мы разговаривали с MS. (Они знают наше приложение)
Это была их рекомендация. Мы просто её проверили.

А комментарии... как тебе сказать... мы же профи
в конце концов. Да, мы это знали заранее.
Поэтому-то инициатива исходила не от нас.
Re[4]: Ха! Мы забыли про Mobile девайсы
От: Igor Sukhov  
Дата: 24.11.05 23:25
Оценка:
Здравствуйте, c-smile, Вы писали:

IS>>Здравствуйте, c-smile, Вы писали:

CS>>>а не написать ли нам это на Compact Framework...
IS>>судя по коментариям, подобное поведение и требовалось получить.

CS>Не понял до конца замечания ну да ладно...

CS>Мы разговаривали с MS. (Они знают наше приложение)
CS>Это была их рекомендация. Мы просто её проверили.
а вы от них ждали что они вам порекомендуют решение
"от конкурентов". Нет (1).

CS>А комментарии... как тебе сказать... мы же профи

CS>в конце концов. Да, мы это знали заранее.
CS>Поэтому-то инициатива исходила не от нас.
Именно про это я и писал. Когда изначально (2) ставиться
задача показать что на солнце лететь ночью
нельзя, это обычно легко доказывается.

(1) + (2) приводят к предубеждению в самом начале тестирования.
Начиная с предубеждения, получить непредвзятый результат невозможно.
* thriving in a production environment *
Re[13]: Об эффективности - с другой стороны
От: IT Россия linq2db.com
Дата: 25.11.05 04:55
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Прекрасно, а в чем заключаются те приоритеты, которые я "навязываю" (кстати, почему именно навязываю — я им начальство, что ли ?).


Студентам? По идее препод для студентов должен быть даже больше чем начальством.

PD>Или мои приоритеты в чем-то другом заключаются ? Тогда в чем ?


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

Вот ещё одна забавная ситуаци — Re[4]: Качественно выполненная работа
Автор: Pavel Dvorkin
Дата: 23.11.05
. Казалось бы, причём тут вообще наука? Но ветка, благодаря тебе, съехала куда-то в сторону и человек, в принципе, давший вполне адекватное определение данной конкретной ситуации должен почему-то перед тобой оправдываться
... << RSDN@Home 1.2.0 alpha rev. 0>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[10]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 25.11.05 09:28
Оценка:
Здравствуйте, eao197, Вы писали:

отлично сказал

E>Так вот хочу заявить, что лично мне гораздо интереснее решать мелкие, но сложные задачи. Где требуется проявление личного мастерства. А вот большие и сложные, для которых нужна искусность, меня совершенно не привлекают. По разным причинам. Но, главное, ну не нравится мне делать большие разработки. Ну хоть убей! А вот маленькие, но трудоемкие и уникальные -- за милую душу, за гроши,... Да за харчи, в конце-концов! Потому, что интересно до безобразия.


А это уж — дело вкуса
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 25.11.05 10:23
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>отлично сказал


Спасибо.

E>>Так вот хочу заявить, что лично мне гораздо интереснее решать мелкие, но сложные задачи. Где требуется проявление личного мастерства. А вот большие и сложные, для которых нужна искусность, меня совершенно не привлекают. По разным причинам. Но, главное, ну не нравится мне делать большие разработки. Ну хоть убей! А вот маленькие, но трудоемкие и уникальные -- за милую душу, за гроши,... Да за харчи, в конце-концов! Потому, что интересно до безобразия.


Д>А это уж — дело вкуса


Именно. Вот лично у меня такой.
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[9]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 25.11.05 11:57
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> C>Уже нет Начиная с первого GeForce на чипах появился GPU — это такой

>> C>быстрый векторный CPU, заточеный специально под графику. Он умеет
>> C>перемножать матрицы, рассчитывать тени и т.п.
>> В аппаратное перемножение матриц фиксированного объема — поверю
>> (скажем, 4х4), в обсчет теней — нет.

C>А чего же так? Stencil buffer в аппаратуре не так уж сложно реализовать.


Не знаю, я бы оставил этот момент на микропрограммы. Ибо для обсчтеа теней могут применяться различные по сложности алгоритмы, где-то требуется достоверность и точность, где-то можно просто задать коэв. рассеивания и т.д.
Re[17]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 25.11.05 11:59
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>просто полный звиздец!

Д>сегодня вечером опять копал интернет в поисках материалов на аналогичную тему, и нашел исследовательский проект, которым уже два года занимается Bell Labs (правда, результатов пока не видно). Детали конечно различаются, но основные идеи — просто один в один! (правда, у меня есть кое-какие идеи, до которых они не додумались )
Д>Но что самое смешное — у них даже название почти в точности такое же! я даже не знаю, рыдать или смеяться
Д>Написать им что ли, поинтересоваться, как дела идут?

А можно ссылку на подробности? И что именно пытаешься сделать ты?
Re[18]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 26.11.05 06:49
Оценка:
Здравствуйте, vdimas, Вы писали:

V>А можно ссылку на подробности? И что именно пытаешься сделать ты?


вот их проект:
http://www1.bell-labs.com/project/proteus/

я не выкладывал на свой сайт детальной информации о проекте, поэтому смотреть там не на что.
да и выкладывать сейчас нечего — куча бессистемных заметок, да непригодный пока к применению генератор парсеров
надо будет собраться да написать подробное описание планов на данный момент, когда руки дойдут
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[16]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 26.11.05 06:49
Оценка:
Здравствуйте, vdimas, Вы писали:

V>А теперь можно опять вернуться, ну например, к этому посту, и снова по кругу


по кругу не надо, а то мы так никогда не закончим

вот ты здесь много писал об архитектуре, DAL, N-Tier и т.п. Как ты думаешь, это относится именно к деталям низкого уровня?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[17]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 26.11.05 10:58
Оценка:
Здравствуйте, Дарней, Вы писали:


Д>вот ты здесь много писал об архитектуре, DAL, N-Tier и т.п. Как ты думаешь, это относится именно к деталям низкого уровня?


Когда ты рисуешь эти части в виде "квадратиков" общей схемы — нет. Когда начинаешь разрабатывать внутренности этих самых квадратиков на конкретных платформах, то — да. Самый что ни на есть низкий уровень, требующий глубокого понимания выбранной платформы. Если же удается подобрать готовое удовлетворяющее решение (т.е. не проектировать механику этих частей самому), то опять — нет. Если эту механику все-таки придется дорабатывать — опять да. Последний случай — наиболее распространенный.
Re[18]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 26.11.05 11:33
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Когда ты рисуешь эти части в виде "квадратиков" общей схемы — нет. Когда начинаешь разрабатывать внутренности этих самых квадратиков на конкретных платформах, то — да. Самый что ни на есть низкий уровень, требующий глубокого понимания выбранной платформы. Если же удается подобрать готовое удовлетворяющее решение (т.е. не проектировать механику этих частей самому), то опять — нет. Если эту механику все-таки придется дорабатывать — опять да. Последний случай — наиболее распространенный.


я например всегда считал, что низкий уровень — это та часть, что лежит ниже уровня API операционной системы
внутренности же сервера приложений — это вполне даже высокий уровень, даже если ты залезешь в этот сервер по самый локоть
в общем, пора завязывать с "низким" и "высоким" уровнем. Очень уж эти понятия зависят от выбора точки отсчета
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[11]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 26.11.05 12:02
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Так уж это важно? Ну не клеются регуляры в классический конечный автомат с третьим подклассом грамматики Хомского. Значит это не подходит под термин теории. Зато то что на практике регуляры умеют больше. И в практике существует точно такой-же термин "регулярное выражение", который может обрабатывать скобки. Это ведь не важно. Важно что он интересуется, расширяет свой кругозор, а это более важно.


Ты не так понял. Меня ничуть не смутило, и не удивило, что он как-то по другому считал ДО этого. Меня проразил факт упорства и само трудное восприятие тех вещей, которые он должен был воспринимать как повторение пройденного (я прекрасно знаю кафедру, с которой описываемый чел вышел). Я упомянул про лоботомию именно в этом смысле — невозможность переосмыслить собственные знания. На собеседовании молодых преттендентов практически бесполезно проверять накопленный багаж, интересней посмотреть на способность рассуждать, обобщать, отделять значимое от второстепенного (пусть даже он где-то будет совсем не прав,интересна сама способность к рассуждениям и принятиям решений).

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

Почему именно так? Вот пример на те же регулярные выражения (надуманный... только что)
Пусть у нас есть задача создать некий динамический лексер. Т.е. в некоем виде в "одно место" поступают правила для текущего разбора (пусть в удобно закодированной форме), а в "другое место" — входные цепочки для того самого разбора. Предположим, я предложу решить подобную задачу преттенденту и попрошу обосновать решение. Независимо от того, как он решит задачу, без обоснования решения и сравнения различных путей решения, его собственное будет стоить 0 целых 0 десятых.

В данном случае очевидны 2 решения (на основе имеющихся технологий):
— динамически строить "перловые" регулярные выражения
— динамически строить конечный автомат самому (или с помощью некоей известной либы)


В зависимости от различных входных условий может оказаться следующее:
— построить автомат самому сложнее/не сложнее/легче, чем построить регулярные выражения
— требования к эффективности высокие/не высокие/отсутствуют
— набор входных правил меняется "очень часто"/"не часто"/"редко".

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


Я и сам закончил не многим более 10 лет назад и еще прекрасно помню уровень многих своих друзей-одногрупнников на момент выпуска. Пытаюсь найти сейчас примерно такого же уровня — пусто... Блин, краткий обзор современного "продвинутого" выпускника: немного джавы, HTML, немного С++, какие-то обрывочные знания MFC/ATL/COM/Дельфи и... глубочайшие провалы в основах (на фиг тогда сдались те обрывки знаний?). Такое ощущение, что безграничная доступность машинного времени (копм у всех) банально отвлекает студентов от учебы. Написание программ мартышкиным способом (методом тупого тыка и перебора подходящих вариантов) — не лучшее времяпрепровождение. ИМХО, наоборот — весьма отупляющее занятие.



-----------------
Если тебе интересно для сравнения. Любое зачитывание "в лоб" закодированных правил лексического разбора — это суть построение NFA. Собственно, сама задача построения лексера — это привести NFA к DFA (причем для реального использования даже не обязательно потом минимизировать, ибо это никак не отражается на эффективности). Скажу только, что сразу после института я бы закодировал подобную задачку весьма быстро, а так потратил примерно пол-часа. Вот код процедуры перевода:


    void DoConvert() {
        _dfa = new DFA();

        NFA.State nfaState;
        Enqueue(_nfa.startState);

        while (_convertQueue.Count!=0) {
            nfaState = Dequeue();
            if (nfaState._convertedState == null) {
                nfaState._convertedState = new ConvertedState();
                nfaState._convertedState.Combine(nfaState);
            }

            ConvertedState convertedState = nfaState._convertedState;

            foreach (NFA.Transition nfaTransition in nfaState.transitions.Values) {
                ConvertedState nextState = null;

                // find marked state
                foreach (NFA.State nfaTransitionState in nfaTransition.nextStates) {
                    if (nfaTransitionState._convertedState != null) {
                        nextState = nfaTransitionState._convertedState;
                        break;
                    }
                }

                if (nextState == null)
                    nextState = new ConvertedState();

                foreach (NFA.State nfaTransitionState in nfaTransition.nextStates) {
                    if(nfaTransitionState._convertedState == null) {
                        nextState.Combine(nfaTransitionState);
                        Enqueue(nfaTransitionState);
                    } else if(nfaTransitionState._convertedState !=nextState)
                        // TODO: try to merge converted states if output is equal
                        throw new ApplicationException("Conflict of output during NFA->DFA conversion:" +
                        "\nConverted Output: " + nfaTransitionState._convertedState.tag.ToString() +
                        "\nSupposed Output: " + nextState.tag.ToString());
                }

                convertedState.transitions.Add(nfaTransition.input, nextState);
            }
        }

        startState = _nfa.startState._convertedState;
        CopyToDFAStates(_dfa, _dfa.startState, startState);
    }


Есть еще алгоритмы построения сразу DFA из входного описания, тогда общий код будет еще короче и не нужен промежуточный NFA. Правда, эти алгоритмы не подходят для построения лексера из описания языком расширенных регулярных выражений (не перловых).


Не думаю, что построитель перловых регулярных выражений был бы проще, скорее — ровно наоборот. (Опять же, от преттендентов не требуется готовый код, требуется умение рассуждать, сравнивать, пытаться обнаруживать значимое)
Re[19]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 26.11.05 18:01
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>я не выкладывал на свой сайт детальной информации о проекте, поэтому смотреть там не на что.

Д>да и выкладывать сейчас нечего — куча бессистемных заметок, да непригодный пока к применению генератор парсеров
Д>надо будет собраться да написать подробное описание планов на данный момент, когда руки дойдут

если на дотнете — пиши в приват, с лексерами помогу
в общем, есть потребность в разработке своих DSL, но нужен инструмент, которым легко ворочать
Re[20]: Об эффективности - с другой стороны
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.11.05 19:06
Оценка:
Здравствуйте, vdimas, Вы писали:

Д>>я не выкладывал на свой сайт детальной информации о проекте, поэтому смотреть там не на что.

Д>>да и выкладывать сейчас нечего — куча бессистемных заметок, да непригодный пока к применению генератор парсеров
Д>>надо будет собраться да написать подробное описание планов на данный момент, когда руки дойдут

V>если на дотнете — пиши в приват, с лексерами помогу


Что-то модно это сейчас стало, DSL-ями заниматься И Фаулер туда же: http://martinfowler.com/articles.html#id2251334

V>в общем, есть потребность в разработке своих DSL, но нужен инструмент, которым легко ворочать


Ruby (Re[2]: Metaprogramming et al: Ruby?
Автор: eao197
Дата: 18.10.05
, [Ruby,C++] RuCodeGen -- простой фреймворк для кодогенерации
Автор: eao197
Дата: 16.11.05
),
Smalltalk (Re[3]: Metaprogramming et al: Ruby?
Автор: Andrei N.Sobchuck
Дата: 18.10.05
),
Lisp (Metaprogramming et al
Автор:
Дата: 09.07.05
, Lisp
Автор: fionbio
Дата: 12.07.05
)
?
... << RSDN@Home 1.1.4 stable rev. 510>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Всего пара слов: деньги решают все (+)
От: c-smile Канада http://terrainformatica.com
Дата: 26.11.05 21:15
Оценка:
Здравствуйте, gwg-605, Вы писали:

G6>необходимое железо + стоимость разработки + стоимость поддержки = затраты. Минимум затрат большая прибыль.



"Минимум затрат большая прибыль."

БОльшая, но не большАя.

Идея я думаю очевидна. Т.е. уравнение не полное.
Re[20]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 27.11.05 07:13
Оценка:
Здравствуйте, vdimas, Вы писали:

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


вот с этого и надо было начинать
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[20]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 27.11.05 07:13
Оценка:
Здравствуйте, vdimas, Вы писали:

V>если на дотнете — пиши в приват, с лексерами помогу


а что, есть какие-то наработки? В принципе, особой необходимости у меня нет, но познакомиться с другими вариантами всегда интересно

V>в общем, есть потребность в разработке своих DSL, но нужен инструмент, которым легко ворочать


вот и я про это же думаю. Только нужен генератор парсеров, который будет решать неоднозначности грамматик по возможности самостоятельно, чтобы максимально упростить разработку грамматик. Вот и пришлось за это дело взяться.
Не знаю правда, насколько правильным с идеологической точки зрения будет мое "деревенское" решение . Но для меня главное — чтобы выполняло свою задачу
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[21]: Об эффективности - с другой стороны
От: Дарней Россия  
Дата: 27.11.05 07:13
Оценка:
Здравствуйте, eao197, Вы писали:

E>Что-то модно это сейчас стало, DSL-ями заниматься И Фаулер туда же: http://martinfowler.com/articles.html#id2251334


вероятно, необходимость назрела
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[3]: Всего пара слов: деньги решают все (+)
От: gwg-605 Россия  
Дата: 28.11.05 06:47
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> необходимое железо + стоимость разработки + стоимость поддержки = затраты. Минимум затрат большая прибыль.


ПК>Из Вашего уравнения выпали несколько существенных составляющих, начиная с качества, функциональности и usability получившегося продукта.

1. Качество чего? Продукта? Менеджемента? Программирования? Чего-то еще?
2. Функциональность и юзабилити включены в разработку. Я включил в стоимость разработки все начиная от зарождения идеи до выхода в свет программы.
Re[3]: Всего пара слов: деньги решают все (+)
От: gwg-605 Россия  
Дата: 28.11.05 06:52
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>БОльшая, но не большАя.

Конечно

CS>Идея я думаю очевидна. Т.е. уравнение не полное.

Да согласен не полное, но я и не ставил себе цели выдать полную формулу, просто некий общий взляд с доступной высоты, который мне видится в последнее время.
Re[2]: Ха! Мы забыли про Mobile девайсы
От: gwg-605 Россия  
Дата: 28.11.05 07:05
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Они портируют приложение с PalmOS.

CS>Одному их прожект менеджеру пришла светлая идея
CS>а не написать ли нам это на Compact Framework...

CS>А вы говорите....

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

Ну и конечно же на .NET кодировать легче и быстрее, чем на плюсах.
А .NET это сейчас самое любимое дитя МС-а.
Re[22]: Об эффективности - с другой стороны
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 28.11.05 12:01
Оценка:
Здравствуйте, vdimas, Вы писали:

V>С лисп и смолтолк знаком слегда, но это все не то. Rubby тоже выглядит немного "специальным" языком. Хочется иметь нечто вроде C#, но добавлять операторы языка или нечто вроде глобальных ф-ий (которые таковыми являться не будут).


V>С другой стороны иметь возможность некоторые конструкции убирать. Т.е. иметь возможность разработать прикладной язык, где нельзя шагнуть вправо/влево. Например, на определенном прикладном уровне вообще вычленить из языка константу null, чтобы не иметь возможности ее создавать/обрабатывать


За основу берёш ST, который всё это позволяет, прикручиваеш свой синтаксис и имееш то, что тебе нужно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re: Об эффективности - с другой стороны
От: DEMON HOOD  
Дата: 29.11.05 18:26
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Кстати, 100 Мбайт — не так уж мало. 500-страничная книга — это примерно 1 Мб. Так что 100 Мб — это шкаф на сотню таких книг, что реально и имела бы фирма, если бы не было компьютеров вообще.


Незнаю, незнаю. Если вогнать все(!) сообщения RSDN в мою ЛБД то твой P-100 с 32 (!) Мб ОЗУ накроется медным тазом и зазвенит. Фильм в кодировке Mpeg4 (или как там?) не посмотришь, МР3 тоже не послушаешь, особенно если они >64 Kbps и >11Khz. Что ещё? Ворд 2003 работает со скрипом (проверено) можно конечно 97 поставить, но там нет привычных уже рюшек 2003. Delphi4 is a only R.A.D tools? Не смешите мои тапочки, на P-100 он будет загружаться полчаса и 10 минут компилить Project1.exe (не проверено).
Вот, кстати, о тормозном .Net: сделал программу, просто великолепно работает на Celeron-500 64 ОЗУ, на P4-512 правда ещё великолепнее
Коротко говоря: многие задачи, если их и можно решить на старых машинах, но лучше если машина будет современнее. И конечно же, не стоит делать программы для которых ещё не сделали достаточно мощных машин. В конце концов, так можно и без заказчиков остаться
Rammstein — Ich Will RSDN@Home 1.2.0 alpha [618] Windows XP 5.1.2600.65536
Re[14]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 30.11.05 07:00
Оценка:
Здравствуйте, IT, Вы писали:

IT>Студентам? По идее препод для студентов должен быть даже больше чем начальством.


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

PD>>Или мои приоритеты в чем-то другом заключаются ? Тогда в чем ?


IT>Не важно в чём они заключаются, важно то, что ты их пытаешься навязывать другим.


Еще раз — объясни, что ты понимаешь под словами "наязывать". Я высказываю свое мнение. Любой с ним волен согласиться или нет. Я не начальство и не минстерство. Я не могу ничего приказать никому здесь. А высказывать я имею право ?

IT>Вот ещё одна забавная ситуаци — Re[4]: Качественно выполненная работа
Автор: Pavel Dvorkin
Дата: 23.11.05
. Казалось бы, причём тут вообще наука? Но ветка, благодаря тебе, съехала куда-то в сторону и человек, в принципе, давший вполне адекватное определение данной конкретной ситуации должен почему-то перед тобой оправдываться


Я бы не сказал, что передо мной кто-то оправдывается там. Скорее я должен был там защищаться
Причем здесь наука — а просто существует программирование для научгых исследований. И там несколько иные принципы действуют, чем в разработке корпоративных приложений. А еще есть real-time программирование для, к примеру, ядерных реакторов или космических ракет. Там вообще качество совсем иначе определяется. Я и отметил, что не все так просто.

Насчет адекватности данного определения — последовавшая с bkat дискуссия показала, что не все так уж адекватно.

IT, я не пойму другое. Почему Вы столь резко относитесь к моим попыткам формулировать мнение, отличающееся от того, которое Вам нравится ? Я вполне допускаю, что у Вас иная точка зрения и готов к ней относиться с уважением, даже если абсолютно с ней не согласен. Но ИМХО я имею право на взаимность, т.е. на нормальное толерантное отношение и к моей точке зрения. Не надо обвинять меня в навязывании, в стремлении куда-то пытаться сдвинуть дискуссию в не том направлении. Кадый имеет право на свою точку зрения и ни у кого нет права считать свою точку зрения единственно верной. ИМХО.
With best regards
Pavel Dvorkin
Re[2]: Об эффективности - с другой стороны
От: Pavel Dvorkin Россия  
Дата: 30.11.05 07:08
Оценка:
Здравствуйте, DEMON HOOD, Вы писали:

DH>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Кстати, 100 Мбайт — не так уж мало. 500-страничная книга — это примерно 1 Мб. Так что 100 Мб — это шкаф на сотню таких книг, что реально и имела бы фирма, если бы не было компьютеров вообще.


<skipped>

Я вполне со все сказанным согласен, но перечитай мой постинг. Там речь шла о сайте небольшой компании

>Пусть, к примеру, создается сайт для небольшой торговой компании. Общее количество наименований продукции не более 1000. Положив по 100 Кбайт на каждый вид продукции, имеем 100 Мбайт информации, которой фирма оперирует. Из этого объема процентов 70-80 — просто файлы с документацией, доступные для скачивания, а остальное — база данных, HTML страницы и т.д. Никаких Java апплетов там не предвидится.


Кстати, 100 Мбайт — не так уж мало. 500-страничная книга — это примерно 1 Мб. Так что 100 Мб — это шкаф на сотню таких книг, что реально и имела бы фирма, если бы не было компьютеров вообще.

Обращений к этому сайту ожидается не так уж много. Сотни сеансов в день, вряд ли более.

Это похоже на RSDN ? Здесь есть что-то о фильмах ? О звуках ? При чем здесь Word 2003, где он мог быть 10 лет назад и зачем он сейчас на этом сайте ?

DH>Коротко говоря: многие задачи, если их и можно решить на старых машинах, но лучше если машина будет современнее.


Я что, предлагал отыскать на свалке P100 и для него делать ?


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


+1. Но при неэффективном программировании это "не сделали достаточно мощных машин" можно и неверно оценить.
With best regards
Pavel Dvorkin
Re[6]: Об эффективности - с другой стороны
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.12.05 04:21
Оценка:
Здравствуйте, ghecko, Вы писали:

G>ASP в Win или Apache+php/java в Unix. А все остальное из области экспериментов. Мне так кажется


Именно что кажется. Apache работает под Виндовс без каких либо проблем. И не мало народу этим пользуется. Про яву и говорить не стоит. Вот тот же Библион насколько мне известно работает на Яве под Виндовс.
... << RSDN@Home 1.2.0 alpha rev. 620>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Об эффективности - с другой стороны
От: vdimas Россия  
Дата: 21.12.05 20:05
Оценка:
Здравствуйте, GlebZ, Вы писали:

GZ>Конечно, у меня есть некоторая подготовка по грамматикам, но для разговора по данной области сходу я бы поостерегся. И вообще, лучше бы на основе имеющихся знаний выбрал готовый продукт. Проблема не в том, что я не смогу, проблема в том что этот код надо поддерживать. Протестировать грамматику, даже автоматную, весьма сложно.

GZ>Но результат такой, вряд ли ты бы меня взял к себе на работу если бы я не знал о чем будет разговор и не подготовился. К тому же перла я не знаю Так что, либо я бездельник и никому не нужный туниядец, либо у тебя слишком субъективное мнение.

Сорри, что сразу не ответил, у меня тогда была пауза, а потом эта ветка быстро "упала" вниз.

В общем, немного не так. Кандитдат решил продемонстрировать свое некое разбирательство в данной области. Он вышел с моей специальности, а нас на формальные грамматики натравливали жестоко (мы системщики, разработчики осей, компиляторов, протоколов)

В конечном счете мне не понравилось не то, что он успел за год забыть то, что сдавал (я прекрасно понял КАК он это все сдавал), не об этом речь. Речь о том, что я попытался ему напомнить часть моментов, потом и объяснить... Объяснялось с трудом, т.к. преттендент умудрился забыть даже самые азы... На основе объяснений я предложил порассуждать... В общем, обнаружил весьма тугое восприятие информации. Если ты действительно много чего нарыл и понял за пол-часа в интете, думаю у тебя лично не возникло бы проблем. Опять же, я все еще очень хорошо помню себя и многих своих товарищей по окончании ВУЗа, и примерно знаю, кого ищу. Умение быстро разбираться/вникать — это вообще умение №1 для программиста, иначе такой разработчик будет балластом. Одного, кстати, нашел все-таки
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.